1.元组(tuples)类型的定义:可以包含多个值的数据类型。
元组类型变量(常量)在初始化时使用一对圆括号将元组中的值括起来。例如,下面的代码定义了一个元组类型常量。
1)定义:
(1)
let product = (20,"iPhone6",5888)//(.0 20,.1 "iPhone6",.2 5888)
即:product元组中包含了三个值,其中20是Int类型的值,"iPhone6"是String类型的值,5888是Int类型的值。
(2)let product3 = (30,name:"iPhone8",price:5988) //或者let product3 = (id:30,price:5988)
print(product3.name)//print(product.0)
2)取值
(1) let product1 = (20,"iPhone6",5888)
var(id,name,price) = product1//分别将product1中3个值赋给3个变量(id,price)
print("id=\(id),name = \(name),price = \(price)")
(2)let (_,name1,_) = product1
print("name1=\(name1)")
注:如果我们只想获取元组类型值中的一个或几个值,并不想全部获取这些值,可以使用下划线占位。
2.可选类型的定义:允许变量(常量)中没有值(被设为nil)。要注意的是,swift中的nil和Objective-C中的nil不一样。前者的nil表示没有值,后而的nil表示变量值为空。
1)?(一般转换类型,声明变量时需要加?)
var numStr:String = "a123"
var value:Int? = numStr.toInt()//value必须定义为可选的Int类型,否则无法成功编译。
print(value) //加了?后,表示如果此时value转换失败,如果在oc中可能程序就崩溃了,而swift不会,此处会赋值为nil.
2)!
所以在可选变量时,后面加感叹号是为了在该变量(常量)中没有值(为nil)时抛出运行时异常。
一般情况下,每次在使用时都加感叹号挺麻烦的,所以干脆在定义可选类型变量(常量)时将问号改成感叹号,这样就可以直接引用这些可选类型变量和常量了。
(在其它语言中,不添加错误捕捉,可能会抛出异常,而在swift中,如果转换失败,就直接返回nil)
3.注释
swift与C++的注释基础上(单行注释、多行注释),不过swift对多行注释做了扩展。
/*上层的多行注释
/*嵌套的多行注释
*/
*/