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