快速理解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不可缺省
加油~