Swift是一门开发iOS,macOS,watchOS和TVOS应用的语言,然而,如果你有c或者oc开发经验的话,你会发现swift的很多内容都是你熟悉的。
swift包含了c和oc上所有基础数据类型,int表示整数型值;double和float表示浮点型值;BOOL是布尔型值;string是文本型数据。swift还提供了三个基本的集合类型,Array,set和Dictionary。
就像c语言一样,swift使用变量来进行存储并通过变量名来关联值。在swift中,广泛的使用着值不可变的变量,他们就是常量,而且比c语言的常量更强大。在swift中,如果你要处理的值不需要改变,那使用常量可以让你的代码更加安全并且更清晰的表达你的意图。
除了我们熟悉的类型,swift还增加了oc中没有的高阶数据类型比如元祖。元祖可以让你创建或者传递一组数据,比如作为函数的返回值,你可以用一个元祖可以返回多个值。
swift还增加了可选类型,用于处理值缺失的情况。可选表示“那有一个值,并且它等于x”或者“那没有值”。可选有点像在oc中使用nil,但是他可以用在任何类型上,不仅仅是类,可选类型比oc中的nil指针更加安全也更具有表现力,他是swift许多强大特性的重要组成部分。
swift是一门类型安全的语言,这意味着swift可以让你清除的知道值的类型。如果你的代码期望得到一个string,类型安全会阻止你不小心传入一个int。同样的如果你的大吗期望得到一个string,类型安全会阻止你意外传入一个可选的string。类型安全可以在帮助你的开发阶段尽早的发现并修正错误。
let x = 10
var y = 0
var welcome: String
声明中的冒号代表着“是...类型”,所以这行代码可以被理解为:
typealias AudioSample = uint16
let http404Error = (404,"Not Found")
(404,"Not Found")元组把一个int值和一个string值组合起来表示http状态吗的两个部分:一个数字和一个人类可读的表述。这个元组可以被描述为“一个类型为(int,string)的元组”。
let (statusCode,statusMessage) = http404Error
print("\(statusCode)")
print("\(statusMessage)")
如果只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记:
let (justTheStatusCode,_) = http404Error
此外,还可以通过下标来访问元组中的单个元素,下标从零开始:
print("\(http404Error.0)")
print("\(http404Error.1)")
可以在定义元组的时候给单个元素命名:
let http200Status = (statusCode:200,description:"ok")
给元组中的元素命名后,可以通过名字来获取这些元素的值:
print("\(http200Status.statusCode)")
print("\(http200Status.description)")
作为函数返回值时,元组非常有用。一个用来获取网页的函数可能会返回一个(int,string)元组来描述是否获取成功。和只能返回一个类型的值比较起来,一个包含两个不同类型值的元组可以让函数的返回信息更有用。