快速理解Swift

声明变量时添加?,告诉编译器这个是Optional的,如果声明时没有手动初始化,就自动初始化为nil

声明变量时添加!,告诉编译器这个是Optional的,并且之后对该变量操作的时候,都隐式的在操作前添加!

在对变量操作前添加?,判断如果变量是nil,则不相应后面的方法。

在对变量操作前添加!,表示默认该变量非nil,直接解包进行处理。

var arrayCount = dataList?.count

如果dataList为空,则不执行后面的方法,直接返回nil

var arrayCount = dataList!.count

如果dataList为空,则crash


继承关系:NSObject-Person-Teacher

as 向上转型,比如将teacher转为person

as! 向下转型,比如将person转为teacher,如果转型失败,则报错

as? 向下转型,比如将person转为teacher,如果转型失败,则返回nil


guard 是用来检查条件的,如果不满足条件就会走到else那里。

guard let a = personOne as? Student else {return false}

这里就是一个判断类型的语句,如果personOne不能向下转型为Student,那么就会return false。


Func的变量前面加下划线_表示函数调用时该参数名可以缺省:

func testOne(_ status:String) -> () {

print(status)

}


func testTwo(status:String) -> () {

print(status)

}

调用:

self.testOne("Good”)//参数名status缺省了

self.testTwo(status: "Good”) //参数名status不可缺省

加油~