1、class中的值是沒辦法不賦值,不然會報錯,那麼就有個init的方法初始化(這個方法使得例項時必須加上引數)
class test{ var a:String var b:Int init(a:String,b:Int){ self.a=a //self代表這個class本身 self.b=b } } var c=test(a:"好",b:0) print(c.a) //好 print(c.b) //0
2、struct結構體中是不需要init初始化的
struct test{ var a:String var b:Int } var c=test(a:"好",b:0) print(c.a) //好 print(c.b) //0
3、設定預設值的初始化(輸出初始值則輸出初始值沒有則獲取預設值)
class test{ var a:String init(a:String){ self.a=a } convenience init(){ self.init(a:"是") } } var c=test() print(c.a) //是
4、可失敗初始化(如果a是空則返回nil,如果不空則把a匯入a)
class test{ var a:String init?(a:String){ if a.isEmpty{ return nil } self.a=a } } var c=test(a:"") //nil