Swift的Optional、Array

一、Optional

1、可选型声明关键符号?,每个类型都有可选性,比如下面声明为整型可选性。


var errorCode: Int? =404

print(errorCode)

print(errorCode!)


2、可选型解包关键符号!,例如,下方errorCode解包后就是一个整型变量。


//解包后就是整型

var aInt = errorCode!

aInt

var bInt = 0;

bIntaInt;

bInt


3、if let 表示判断可选性变量不为nil,Swift中的nil和OC中不同,并不是代表空,而是一种特定的类型,而且变量不会被赋值默认值,所以声明后,如果要使用该变量必须为改变量赋值。


var errorMessage: String? ="Not Found"

//判断errorMessage是否有值,当不为nil时,解包成功,执行if语句

if let errorMessage =errorMessage

{

    errorMessage.uppercaseString

}


//也可以写成:此种写法含义与上面if let相同

errorMessage?.uppercaseString

//意义跟上面两种完全不同,此时代表你确定errorMessage不为nil,所以强制解包。当errorMessage这个字符串可选型为nil时,编译会爆error

errorMessage!.uppercaseString


4、我们调用第三方的APK的时候可能errorMessage?.uppercaseString之后返回的还是一个可选型,所以我们可以继续?.方法名,这种就叫做可选型的链条(Optional Chaining

//返回值也是可选型,因为可能会转换失败,

errorMessage?.uppercaseString


5、a ?? b  相当于 a !=nil ? 1 : 2

6、隐士可选型

var name: String! =nil

//使用的时候必须赋值,不赋值会报错,无法执行

name = "not found"

"This message is "+name


二、数组

1、声明数组

//整型Array

var aArray = ["1","2","3","4","5"]

//相当于

var bArray: [String] = ["1","2","3","4","5"]

//swift 字符串双引号之内默认是String,哪怕只有一个字符,如果想要声明Character显示声明

var cArray: [Character] = ["1","2","3","4","5"]


//或者也可以写成

var dArray: Array = ["1","2","3","4","5"]

//或者

var eArray: Array<String> = ["1","2","3","4","5"]


2、NSArray

//array NSArray最大的区别是NSArray可以放不同类型的数据

var gArray: NSArray = ["1",2,"3","4","5"]

//array中放不同的数据 会默认把数组里面的类型转成object 即:Array[object]

var fArray: Array = ["1",2,"3","4","5"]




你可能感兴趣的:(Swift的Optional、Array)