Swift(二,元组,可选类型,类型转化)
一,首先,元组是Swift中特有的,OC中没有元组相关类型,具体怎么用,看下面的例子吧
//1.使用元组来定义一组数据 let infoTuple = ("cjh",18,1.8) let nameTuple = infoTuple.0 print(nameTuple) let count = nameTuple.characters.count //2.1 普通元组的定义方式 let errorMsg = ("error",123) errorMsg.0 //2.2 给元组中所有的元素起别名 let errorTuple1 = (error : "error", errorCode : 123) errorTuple1.error errorTuple1.0 //2.3 元组的元素别名 就是元组的名称 let (error,errorCode1) = ("error",123) error errorCode1
//3.元组的运用之一,快速的交换2个数值
var a = 10
var b = 20
(a, b) = (b, a)
a
b
//交换完毕
二,可选类型. 在OC里面,会经常用到先定义一个变量,但是不马上使用,回去给它赋值为0或nil,但是Swift是一门强类型语言,nil也是一种特殊的类型,如果给它一开始就赋值为nil的话,那么当它的真实类型不匹配的时候,就会报错了.所以Swift中推出了可选类型.它的取值有空值和有值2种.基本用法如下
//1.定义可选类型 var name : String? = nil //var Name :Optional<String> = nil //不常用 //2.赋值 name = "cjh" //3.取值 print(name!) //4.强制解包是个危险的操作,如果没有值,强制解包会导致程序崩溃,所以先判断 if name != nil { print(name!) } //5.可选绑定 /* 1.会先判断name有没有值,如果没有值,就不执行{}里的内容 2.如果有有值,系统先对name强制解包,再赋值给前面的name,再执行{}的内容 */ if let name = name{ print(name) }
三,类型转化. 有is 和as ,其中is就和OC中isKindOfClass类似,判断一个实例是否是某种类型.as就是将实例转成某一种类型,基本用法如下
import UIKit //1.is 的使用 let array = ["cjh","abc",12,15] let item = array[3] if item is Int { print("是整型") } //2.as? as! //1.将NSObject转成具体的类型 //2.as? 将NSObject转成一个可选类型 //3.as! 将NSObject转成一个具体的类型(注意:如果转化不成功,程序会崩溃,慎用) //2.1 定义字典 let infoDict = ["name" : "cjh","age" : 18,"height" : 1.8] let age = infoDict["age"] //一步一步分开写 if let age1 = age { let age2 = age1 as? Int if let age3 = age2{ print(age3) } } //简便写法 if let age = infoDict["age"] as? Int{ print(age) }
ok,就这样了
奈文摩尔 16.05.12