首页 > 代码库 > Swift 入门教程

Swift 入门教程

1基础知识

虽说 Swift 是开发 iOS  OS X 应用的一门新编程语言,但它的开发体验与 C  Objective-C 有很多相似之处。
Swift 重新实现了 C  Objective-C 中的所有基础类型,包括表示整数的 Int,表示浮点数的 Double  Float,表示布尔值的 Bool,以及表示纯文本数据的 String Swift 还为两个基本集合类型 Array  Dictionary 提供了强大的支持,详情可参考 集合类型。
 C 语言类似,Swift 也采用变量存储数据,并通过标识符来引用变量值。 Swift 还扩充了值不可变的量——常量的用法,使它比 C 语言中的常量强大得多。 当在 Swift 中操作不需要改变值的数据时,使用常量可使代码更安全、更简洁。
除常见类型以外,Swift 还引入了Objective-C 中不存在的高级类型,其中包括元组(tuple),可以新建或传递一组值。函数可以将多个值作为整体(单个元组值)返回给调用方。
Swift 还引入了可选量,可处理不存在的值。可选量可以“存在一个值 x”,也可以“不存在任何值”。可选量与 Objective-C 为指针赋 nil 相似,但在 Swift 中可以对任意类型使用,而不只针对类。可选量比 Objective-C  nil 指针更安全且语义更丰富,在 Swift 最强大的诸多功能中得到了深入的应用。
可选量是 Swift 类型安全的一点体现。Swift 可帮助你清晰地了解代码能处理的数据类型。如果代码希望得到 String 数据,类型安全的特性将阻止你偶然将 Int 传递过去。这样可以在开发过程中尽可能早地发现与修正问题。
1.1 常量与变量
常量及变量将名称(如maximumNumberOfLoginAttempts  welcomeMessage) 与特定类型的值(如数字 10 或字符串"Hello")关联起来。常量一旦赋值,其值不可再改变;而变量以后还可以改赋不同的值。
1. 常量及变量的声明
常量与变量在使用之前必须声明。使用 let 关键词声明常量,使用 var关键词声明变量。 下面是可以跟踪用户登录次数的常量与变量的例子:
let maximumNumberOfLoginAttempts = 10 // 允许尝试登录的次数
var currentLoginAttempt = 0          // 已经尝试登录的次数

这段代码可以这样理解:
“声明一个新的常量,其名称为 maximumNumberOfLoginAttempts,并将其赋值为 10 然后,声明一个新的变量,其名称为 currentLoginAttempt,并赋初始值为 0。”
在本例中,允许尝试的最多登录次数作为常量声明,因为允许的次数在执行时永远不会发生变化。当前已尝试次数的计数器作为变量声明,因为该值必须在登录失败时递增。
可以在同一行声明多个常量或变量,以逗号分隔:
var x = 0.0, y = 0.0, z = 0.0


提示:如果代码中需要存储的值不会改变,务必通过let 关键字作为常量声明。只有存储需要改变的值时才需要使用变量。
2. 类型说明
声明常量或变量时可提供类型说明,明确指定该常量或变量所能存储的数据类型。类型说明的写法为,在常量或变量名称后加上一个冒号、一个空格,后接要使用的类型名称。
本例为名为 welcomeMessage 的变量提供类型说明,指明该变量可存储 String 型的值:
var welcomeMessage: String

声明语句中的冒号意为“…的类型为…”,因此上面的代码可以这样理解:
“声明一个名为 welcomeMessage 的变量,其类型为 String。”其中“类型为 String”代表“可存储任意 String 类型的值”。可以理解为可以存放的“东西的类型”(或“东西的种类”)。
welcomeMessage 变量现在可以赋任意字符串值,不会报错:
welcomeMessage = "Hello"

提示:在实践中需要编写类型说明的情况非常罕见。如果你在定义常量或变量时提供了初始值,Swift 通常能够推断出该常量或变量应使用的类型,详情参见类型安全及类型推断。在上述 welcomeMessage 例子中,没有提供初始值,因此才通过类型说明给 welcomeMessage 变量明确指定类型,而没有让它通过初始值推断。
3. 常量与变量的命名
常量及变量的名称可以使用几乎所有字符,包括 Unicode 字符:
let π = 3.14159
let 你好 = "你好世界"
let