Swift中init()⽅法的理解(构造器)
前⾔
初学者在学习Swift语⾔时可能对于⽅法/函数⾥⾯的“构造⽅法”/“构造函数”有困惑。实际上不仅仅是Swift,包括例如Java,C#等OOP 语⾔⽽⾔,其都具备构造⽅法且作⽤⼤体相同:都是为⼀个类赋予初始值。
⽰例代码
下⾯两种情形分为在编码时⽆init⽅法和具备init⽅法
1.⽆init⽅法
class Student{
var name:String?
var age:Int?
swift语言怎么样}
对于这种情况⽽⾔,该类在实例化时,编译器仅为其各个变量提供内存地址,但内存地址⽽⾔⾥⾯却空空如也,⾥⾯什么也没有,⽽此时若想显⽰地赋予类变量数值时须修改如下:
class Student{
var name:String= “Bob”
var age:Int=18
}
但这种情况在实际开发时却不被待见:我们想要⾃由地赋予某个“Model”(数据模型,Java⾥⾯称之为JavaBean)⽽不是写死数据,那么我们就需要⼀种⽅法来在我们想要实例化某个“Model”时把该对象⾥⾯的属性赋予我们想要赋予的值。
2.具备init⽅法
class Student{
var name:String?
var age:Int?
init(name:String, age:Int){
self.name = name;
self.age = age;
}
}
上⾯的代码⽚段⾥虽然name和age也是有地址且地址⾥⾯为空,但具备的init⽅法⾥⾯传⼊两个参数:name和age(这⾥的两个参数不要与类变量混淆,这⾥是成员变量,使⽤时要⽤self关键字区分开),这两个参数把值赋予类变量,到此,当我们想要在业务⾥⾃由地赋予某个Model就⾃由地赋予的步骤便完成(系统先调⽤init⽅法把参数赋值给类变量等)。
总结
init的中⽂意思为“初始化”,字⾯理解就是当这东西出⽣时就赋予它⼀些条件,如果没有init⽅法,那么
这个东西后天要修改⼀些属性就很困难。另外init⽅法是⼀种特殊的⽅法,它⽆返回值,可以重载,在⼀些语⾔⾥⾯,它是默认就具备的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。