这篇博客讲解的是Swift中区别于OC中的两种数据类型:元组和可选类型。
1.*********************** 元组 ***********************
/**
*元组类型是OC中没有的,是Swift乴特有的数据类型
*元组是一种类似于数组或者字典的数据结构,元组中的值的类型可以多样化
*/
//1.元组的写法
//1>基本写法
let a = ("value", 16, "element")
//通过如下的方式取用
a.0
a.1
a.2
//2>给每一个元素取名的方式进行定义
let b = (first : "element1", second : "element2", third : "element3")
b.first
b.second
b.third
//3>分解的方式
let (first, second, third) = ("element1", "element2", "element3")
first
second
third
右侧是代码的结果显示:
2.*********************** 可选类型 ***********************
/**
*在Swift中,nil也是一种类型
*Swift是一种强类型编程语言,类型不一致的时候,不可以进行赋值
*Swift中,在创建对象的时候,对象的属性必须有明确的初始化值
*因为在OC中,我们经常会给定义的对象赋值为nil,
*但是Swift中不能直接赋值为nil,所以就有了可选类型
*/
class Person: NSObject{
var name : String = "张三"
}
//1.定义可选类型(两种方式)
//1>常规方式
var a : Optional<String> = nil
//2>简洁方式(常用)
var b : String? = nil
//2.赋值
a = "first"
b = "second"
//3.拿到可选类型的值(需要进行强制解包才能拿到所需要的值)
//强制解包 : 可选类型!
a!
//注意:如果没有对a进行过赋值,强制解包a是会报错的(后面附截图)
//所以我们需要在强制解包可选类型前,判断可选类型是否为nil
if a != nil {
print(a!)
}
//4.可选绑定(目的:判断可选类型是否包含有值,有值的话,就将值赋给一个常量或变量)
//1>以定义的常量a来看上面的a中是否包含有值,没有值就不继续往下运行
//2>如果上面的a中有值,系统会自动对上面的a进行解包,并将解包的结果给定义的a
if let a = a{
print(a)
}
附一张直接强制解包一个不含值的可选类型截图: