原文: https://www.programiz.com/swift-programming/variables-constants-literals

在本文中,您将了解 Swift 编程中的变量,常量,字面值及其用例。

什么是变量?

在编程中,变量用于将数据存储在内存中,可在整个程序中使用。 必须给每个变量一个唯一的名称,称为标识符。 将变量视为保存信息的容器很有帮助,以后可以更改这些信息。

从技术上讲,您可以将变量视为用于在其中存储一些书的书包,以后可以将这些书替换为其他书。


如何在 Swift 中声明变量?

在 Swift 中,我们使用var关键字来声明变量。

示例

  1. var siteName:String
  2. print(siteName)

我们已经声明了String类型的名为siteName的变量,这意味着它只能容纳字符串值。 访问 Swift Strings 了解有关字符串的更多信息。

如果您尝试在游乐场中运行以上代码,则会给我们带来编译时错误(在初始化之前使用了变量),因为它不存储/包含任何值。


如何在 Swift 中为变量赋值?

您可以使用赋值运算符(=)在变量中赋值。

示例 1:声明并将值赋给变量

  1. var siteName:String
  2. siteName = "Apple.com"
  3. print(siteName)

要么

您还可以将值立即分配为

  1. var siteName:String = "Apple.com"
  2. print(siteName)

运行该程序时,输出为:

  1. Apple.com

变量siteName现在包含值"Apple.com"


由于 Swift 是类型推断的语言,因此它可以自动推断(知道)"Apple.com"String并将siteName声明为[ String。 因此,您甚至可以将声明中的(:String)类型删除为:

示例 2:Swift 中变量的类型推断

  1. var siteName = "Apple.com"
  2. print(siteName)

运行该程序时,输出为:

  1. Apple.com

由于siteName是变量,因此您也可以通过简单地使用赋值运算符但不使用var关键字来更改其值,例如:

示例 3:更改变量的值

  1. var siteName = "Apple.com"
  2. // Assigning a new value to siteName
  3. siteName = "Programiz.com"
  4. print(siteName)

运行该程序时,输出为:

  1. Programiz.com

什么是常量?

常量是变量的一种特殊类型,其值不能更改。 将常量视为保存了以后无法更改的信息的容器是有帮助的。

从技术上讲,您可以将常量视为存放某些书的书包,而将这些书放在书包中后就无法替换。


如何在 Swift 中声明常量?

在 Swift 中,我们使用let关键字声明一个变量。

示例

  1. let siteName:String
  2. print(siteName)

我们已经声明了一个类型为String的名为siteName的常量。

如果您尝试运行以上代码,则会给我们带来编译时错误(在初始化之前使用常量),因为它不包含/保留任何值。


如何在 Swift 中为常量赋值?

您可以使用赋值运算符(=)在与变量相同的常量中分配值。

示例 4:声明并将值赋给常量

  1. let siteName:String
  2. siteName = "Apple.com"
  3. print(siteName)

OR

You can also assign the value inline as

  1. let siteName:String = "Apple.com"

运行该程序时,输出为:

  1. Apple.com

现在,常量siteName包含/持有值"Apple.com"


与变量一样,可以从声明中删除类型(:String),如下所示:

示例 5:Swift 中常量的类型推断

  1. let siteName = "Apple.com"
  2. print(siteName)

运行该程序时,输出为:

  1. Apple.com

但是与变量不同,您不能更改常量的值。 所以,你不能做

示例 6:更改常量的值(不允许)

  1. let siteName = "Apple.com"
  2. siteName = "Programiz.com" //compile time error
  3. print(siteName)

上面的语句给我们带来了一个错误,因为正如我们所说的,一旦存储了数据,常量的值就无法更改。 这是变量和常量之间的关键区别。


什么是字面值?

字面值是直接出现在源代码中的值。 它可以是数字,字符或字符串等。例如:"Hello, World",12、23.0,"C"是字面值的简单示例。 字面值常用于初始化变量或常量(将值赋给它们)。

例如

  1. let siteName = "Apple.com"

在上面的表达式中,siteName是变量,"Apple.com"是字面值。


Swift 中字面值的类型

整数字面值

它表示十进制,二进制,八进制或十六进制值。 它有四种类型。

  • 二进制字面值

    • 代表二进制值。
    • 0b开头。
  • 八进制字面量

    • 代表八进制值。
    • 0o开头。
  • 十六进制字面值

    • 代表十六进制值。
    • 0x开头。
  • 小数字面值

    • 代表十进制值。
    • 一无所有。 您在整数字面值中声明的所有内容均为十进制类型。

示例 7:如何在 Swift 中使用整数字面值?

  1. let binaryNumber = 0b11111111
  2. print(binaryNumber)
  3. print(1231)

运行该程序时,输出为:

  1. 255
  2. 1231

在上面的程序中,有两个整数字面值0b11111111(二进制字面值)和1231(十进制字面值)。11111111的十进制值为 255,因此print(binaryNumber)语句在屏幕上输出 255。

同样,print(1231)在控制台中输出十进制值 255


字符串&字符字面值

字符串字面值是由双引号引起来的字符序列,而字符字面值是由双引号引起来的单个字符。

示例 8:如何在 Swift 中使用字符串和字符字面值?

  1. let someCharacter:Character = "C"
  2. let someString:String = "Swift is awesome"

在上面的程序中,"C"是字符字面值,"Swift is awesome"是字符串字面值。


浮点字面值

它用于初始化数据类型为floatdouble的变量。 它可以有两种类型:

十进制

它可以具有可选的指数,由大写或小写e表示。 对于指数为exp的十进制数字,将基数乘以10^exp

示例 9:如何在 Swift 中使用十进制字面值?

  1. let someFloat = 12.23
  2. let someAnotherFloat = 3.14e2
  3. print(someFloat)
  4. print(someAnotherFloat)

运行该程序时,输出为:

  1. 12.23
  2. 314.0

在上面的程序中,12.233.14e2是浮点字面值。3.14e2以指数表示,并且等效于 **3.14 10

十六进制

十六进制浮点数必须具有由大写或小写p表示的指数。对于具有exp指数的十六进制数,基数乘以2^exp

示例 10:如何在 Swift 中使用十六进制字面值?

  1. let someFloat = 0xFp10
  2. let someAnotherFloat = 0xFp-12
  3. print(someFloat)
  4. print(someAnotherFloat)

运行该程序时,输出为:

  1. 15360.0
  2. 0.003662109375

在上面的程序中,0xFp100xFp-12是浮点字面值。0xFp10用指数表示,等于15 * 210F表示为十进制的 15)。 因此,print(someFloat)在屏幕上输出 15360.0。

同样,0xFp-12等于15 * 2^-12。 因此,print(someAnotherFloat)在屏幕上输出 0.003662109375。


布尔字面值

快速有两个布尔字面值。 它们是truefalse.

示例 11:如何在 Swift 中使用布尔字面值?

  1. let result:Bool = false

在上面的程序中,false是布尔常量,它赋给常量result


变量和常量的规则和最佳做法

  1. 选择一个有意义的名称。 例如,变量name比变量n更有意义。

  2. 使用camelCase表示法声明变量或常量。 驼峰表示法以小写字母开头。 例如:

    1. var studentName
    2. let studentAge
    3. let address
  1. 您也可以定义变量和常量而无需对其进行标记。 不使用名称标记意味着您不会在程序中使用它。 在许多情况下,您想创建一个未使用的变量。 在这种情况下,您可以将 _ 占位符用作:
    1. var _ = "Apple.com"//string initialized but not stored in a variable
    2. let _ = "Apple.com"


甚至是有效的

  1. _ = "Apple.com"
  1. 如果只需要设置一次值,而无需在程序中再次更改值,则使用常量。 但是,如果以后需要更改它,请使用变量。

  2. 常量和变量名称不能包含空格字符,数学符号,箭头,专用(或无效)的 Unicode 代码点或线条和框形图字符。 它们也不能以数字开头,尽管数字可能包含在名称中的其他位置。
    例如:

    1. var 12 = "Apple.com" //gives a compile error: expected pattern
    2. var @hello = "Hello" //gives a compile error: expected pattern