结构体和类的存储属性在初始化完成时需要赋上初始值,除非定义为懒加载,因此在之前的示例中,所有的存储属性都有自己的默认值,不然编译器会报错,告诉开发者某个类型的属性还没有初始值。提供初始化方法也是一种确保实例创建时其属性有初始值的方法。
初始化方法的语法和我们之前接触过的方法不太一样,初始化方法必须用关键字init表示。虽然初始化方法是类型的方法,但是前面没有func关键字。
首先创建一个InitPractise的project,初始化的语法如下所示:
动手写7.5.1 InitPractise->Car.swift
本例中,定义了一个Car类,有两个属性color和brand,在初始化init方法中传入一个参数color或者brand,对实例中的color和brand属性赋值。结构体、枚举和类都是通过初始化方法创建出实例的。
初始化方法通常可以传入一个或多个参数,不过也可以没有参数。初始化方法的实现在花括号中定义,这与函数的定义一样。相比于普通的实例方法,初始化方法没有返回值,初始化方法只是将初始值赋给类型中的存储属性。在main.swift中通过Car的初始化方法创建两个Car的实例,代码如下:
动手写7.5.2 InitPractise->main.swift
本例中,定义了一个Car类,有两个属性color和brand,在初始化init方法中传入一个参数color或者brand,对实例中的color和brand属性赋值。结构体、枚举和类都是通过初始化方法创建出实例的。(www.xing528.com)
初始化方法通常可以传入一个或多个参数,不过也可以没有参数。初始化方法的实现在花括号中定义,这与函数的定义一样。相比于普通的实例方法,初始化方法没有返回值,初始化方法只是将初始值赋给类型中的存储属性。在main.swift中通过Car的初始化方法创建两个Car的实例,代码如下:
动手写7.5.2 InitPractise->main.swift
控制台输出如下:
控制台输出如下:
通过自定义的初始化方法,成功创建两个实例。
通过自定义的初始化方法,成功创建两个实例。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。