1.1.Swift 3变量和常量
1.Swift 3 的第一印象
Playground
Playground是Apple在2014年WWDC发布Swift的时候,和XCode一起发布的用于实时调试Swift代码的小工具
我们打开XCode,选择Get started with a playground。
welcome to xcode
之后,Platform选择iOS,为自己的Playground写一个名字,例如我们用到的variables-and-constants。
options
点击Next按钮为Playground文件设置一个保存目录后, 就可以开始在Playground中编写代码了。
save the project
在上图中我们可以看到,Playground左边是我们编写代码的区域,右边则会显示出对应语句的执行结果。
从定义一个变量开始
变量是编程语言中最常用的语法元素,它们用于在程序中把一个名字(例如:swiftString)和某种特定类型的值(例如:"Swift is fun.")关联起来。
在Swift里,我们使用关键字var来定义各种不同类型的变量:
var Name = Value
例如,定义一些我们熟悉的基本类型变量:
//: #### Fundamental types
//: Integer
var hours = 24
//: Double
var PI = 3.14
//: Bool
var swiftIsFun = true
//: String
var boxue = "boxue.io"
除了这些基本类型之外,Swift还有一些自己特有的类型,例如:方便我们打包多个类型的Tuple
//: Tuple - Pack many types of values together
var me = ("Mars", 11, "11@boxue.io")
me.0
me.1
定义好一个Tuple之后,我们就可以使用示例代码中,me.0,me.1这样的方式来访问Tuple中的成员了。我们也可以像下面这样直接修改变量的值:
hours = 12
PI = 3.14159
如果我们不希望变量的值被修改,我们就需要定义一种特殊的变量。
常量是不能被修改的变量
定义常量的方法和变量类似,我们把关键字var,变成关键字let就可以了。例如:
let minutes = 30
let fireIsHot = true
一旦我们定义常量之后,就不能再修改常量的值了,否则,编译器会告诉我们发生了错误。例如,我们修改常量fireIsHot:
fireIsHot = false
这时,我们就可以在Playground中直接看到一个编译错误。
compile error
只要程序中的变量值不会被修改,就总应该使用
let来定义它。这不仅可以防止变量被意外修改,编译器还可以针对常量做更多优化。
Type inference / annotation
在前面的例子里,我们可以发现,无论是整数、浮点数、字符串还有Tuple,我们都没有明确的指定变量的类型, Swift编译器会根据我们为变量的赋值自动推导变量的类型,这个特性,在Swift里叫做Type Inference。
但有时,我们定义变量的时候,并不能确定变量的初始值,这个时候,我们就必须像下面这样明确告诉编译器我们需要的变量类型:var Name:Type。这种通过:Type指定变量类型的形式,在Swift中叫做Type annotation。例如:
var x: Int
var s: String