Swift - 变量与常量
变量和常量
变量
变量是编程语言中最常用的语法元素,它们用于在程序中把一个名字(例如:swiftString)和某种特定类型的值(例如:”Swift is fun.”)关联起来。
在Swift中,我们使用关键字 var 来定义各种不同的类型
1 | var hello = "你好" |
例如,定义一些熟悉的基本类型变量
1 | //: #### Fundamental types |
除了基本类型变量之外,Swift 还有 Tuple ,多类型数据混合到一个数组
1 | //: Tuple - Pack many types of values together |
定义好一个Tuple之后,就可以使用代码 me.0 me.1 me.2 这样的方式来访问Tuple中的变量了,同时也可以直接修改变量的值
1 | // update Tuple value |
常量
如果我们定义的值不希望被修改
定义常量的方法和变量类似,我们把关键字var,变成关键字let就可以了。例如:
1 | let minutes = 30 |
一旦我们定义常量之后,就不能再修改常量的值了,否则,编译器会告诉我们发生了错误。例如,我们修改常量fireIsHot:
1 | fireIsHot = false |
这时,我们就可以在Playground中直接看到一个编译错误。
1 | Cannot assign to value: 'firelsHot' is a 'let' constant |
只要程序中的变量值不会被修改,就总应该使用let来定义它。这不仅可以防止变量被意外修改,编译器还可以针对常量做更多优化。
Type inference / annotation
在前面的例子里,我们可以发现,无论是整数、浮点数、字符串还有Tuple,我们都没有明确的指定变量的类型, Swift编译器会根据我们为变量的赋值自动推导变量的类型,这个特性,在Swift里叫做Type Inference。
但有时,我们定义变量的时候,并不能确定变量的初始值,这个时候,我们就必须像下面这样明确告诉编译器我们需要的变量类型:var Name:Type。这种通过:Type指定变量类型的形式,在Swift中叫做Type annotation。例如:
1 | var x: Int |