Swift
是一门开发iOS
, macOS
, watchOS
和 tvOS
应用的新语言。然而,如果你有 C
或者 Objective-C
开发经验的话,你会发现 Swift
的很多内容都是你熟悉的。 Swift
包含了 C
和 Objective-C
上所有基础数据类型:Int
表示整型值; Double和 Float
表示浮点型值; Bool
是布尔型值; String
是文本型数据。
Swift
还提供了三个基本的集合类型,Array
,Set
和 Dictionary
。就像 C
语言一样,Swift
使用变量来进行存储并通过变量名来关联值。在 Swift
中,广泛的使用着值不可变的变量,它们就是常量,而且比 C
语言的常量更强大。在 Swift
中,如果你要处理的值不需要改变,那使用常量可以让你的代码更加安全并且更清晰地表达你的意图。 除了我们熟悉的类型,Swift
还增加了 Objective-C
中没有的高阶数据类型比如元组(Tuple)
。元组可以让你创建或者传递一组数据,比如作为函数的返回值时,你可以用一个元组可以返回多个值。 Swift
还增加了可选(Optional)类型
,用于处理值缺失的情况。可选表示 “那儿有一个值,并且它等于 x ” 或者 “那儿没有值” 。可选有点像在 Objective-C
中使用 nil ,但是它可以用在任何类型上,不仅仅是类。可选类型比 Objective-C
中的 nil指针更加安全也更具表现力,它是Swift
许多强大特性的重要组成部分。 Swift
是一门类型安全的语言,可选类型就是一个很好的例子。Swift
可以让你清楚地知道值的类型。如果你的代码期望得到一个 String
,类型安全会阻止你不小心传入一个 Int
。同样的,如果你的代码期望得到一个 String
,类型安全会阻止你意外传入一个可选的 String
。你可以在开发阶段尽早发现并修正错误。
常量和变量 常量和变量把一个名字(比如 maximumNumberOfLoginAttempts或者 welcomeMessage
)和一个指定类型的值(比如数字 10或者字符串 "Hello" )
关联起来。常量的值一旦设定就不能改变,而变量的值可以随意更改。
声明常量和变量 常量和变量必须在使用前声明,用 let
来声明常量,用 var
来声明变量。下面的例子展示了如何用常量和变量来记录用户尝试登录的次数: let maximumNumberOfLoginAttempts = 10 var currentLoginAttempt = 0
这两行代码可以被理解为: “声明一个名字是 maximumNumberOfLoginAttempts
的新常量,并给它一个值 10。然后,声明一个名字是 currentLoginAttempt
的变量并将它的值初始化为 0。” 在这个例子中,允许的最大尝试登录次数被声明为一个常量,因为这个值不会改变。当前尝试登录次数被声明为一个变量,因为每次尝试登录失败的时候都需要增加这个值。 你可以在一行中声明多个常量或者多个变量,用逗号隔开: var x = 0.0, y = 0.0, z = 0.0
注意:如果你的代码中有不需要改变的值,请使用 let
关键字将它声明为常量。只将需要改变的值声明为变量。
类型标注 当你声明常量或者变量的时候可以加上类型标注(type annotation)
,说明常量或者变量中要存储的值的类型。如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。 这个例子给 welcomeMessage
变量添加了类型标注,表示这个变量可以存储 String类型
的值: var welcomeMessage: String
声明中的冒号代表着“是…类型”,所以这行代码可以被理解为: “声明一个类型为 String
,名字为 welcomeMessage
的变量。” “类型为 String”的意思是“可以存储任意 String类型的值。” welcomeMessage变量
现在可以被设置成任意字符welcomeMessage = "Hello"
你可以在一行中定义多个同样类型的变量,用逗号分割,并在最后一个变量名之后添加类型标注: var red, green, blue: Double
注意:一般来说你很少需要写类型标注。如果你在声明常量或者变量的时候赋了一个初始值,Swift可以推断出这个常量或者变量的类型,请参考类型安全和类型推断。在上面的例子中,没有给 welcomeMessage
赋初始值,所以变量 welcomeMessage
的类型是通过一个类型标注指定的,而不是通过初始值推断的。
常量和变量的命名 你可以用任何你喜欢的字符作为常量和变量名,包括 Unicode
字符: `let π = 3.14159 let 你好 = “你好世界” let
新闻热点
疑难解答