五、元组类型
元组变量示例:var person=("zhangsan",18,"123456789"),此为(String,int,String)类型的元组
1.获取元组中的元素值
~每个元组变量、值都组合多个元素,Swift允许通过下标来访问元组的单个元素-->元组的下标从0开始
例如取出上述person的第一个元素:print("name=\(person.0)") ,输出name=zhangsan
~直接取值,不需要的值可以用_来代替:
var(name,age,_)=person print("name=\(name)"); print("age=\(age)") 输出: name=zhangsan age=18
2.为元组中的元素命名
示例:
//定义元组为(String,Int,String)
var person=(name:"zhangsan",age:18,mobile:"123456789")
//给各个元素指定对应的类型
var score=(oc:Int,swift:Int,tiyu:String,xx:Double)
//直接复制顺序不能错乱
score=(100,100,"优秀",9.9)
//通过key来赋值可以调换顺序
score=(xx:9.9,oc:100,swift:100,tiyu:"优秀")
1.访问元组中某元素的值,采用点语法如:print("swift=\(score.swift)") 输出swift=100
六、可选类型
1.可选和nil
示例:
var str="hellow"
//直接进行字符串转换成整型的时候,存在无法转化的可能,会使得编译器报错
var num : Int=Int(str);
//采用可选类型,Int? 这种类型可以接受Int值和“值缺失”两种情况
var num: Int?=Int(str);
print("num=\(num)")
2.对于接本办法发生“值缺失”的情况,编译器会自动推断该变量的类型为可选类型。
例如:
//编译器判定n为Int?可选类型
var n=Int(str)
3.Swift使用nil代表“值缺失”,因此上面程序中的num,n变量为nil。Swift的nil与OC中的nil完全不同,nil代表一个并不存在的对象指针;而Swift中,nil并不代表指针-->它是一个确定的值,用于代表“值缺失”。任何可选类型的变量都可以被赋值为nil,如Int?Double?等都可接受nil值。注:只有可选类型的变量或常量才能接受nil,非可选类型的变量和常量不能接受nil。如果一个可选类型的变量或常量没有指定初始值,它们将被默认设置为nil
========================未完待续==================================