我是Swift的新手,我正在努力学习Memberwise Initialisers的概念。以下声明来自“Swift编程语言2.1”。
我的问题是,在什么样的情况下,存储在结构中的属性不会有默认值?有解释的例子将不胜感激。
用于结构类型的分阶段初始化器 如果结构类型不定义自己的自定义初始化器,则会自动接收按成员划分的初始化器。与默认初始化程序不同的是,即使该结构具有存储的属性没有默认值,它也会接收成员级初始化程序。
发布于 2016-02-03 02:17:21
struct Human {
var legs = 2
var name: String
}是name没有默认值的结构。您不能使用默认的初始化程序Human(),因为您不能提供名称;但是可以使用按成员顺序初始化的Human(legs: 1, name: "Lame Harry")。
发布于 2016-02-03 02:17:17
例如,当没有合理的默认值时:
struct GeoLocation {
let latitude: Float
let longitude: Float
}
let geoLocation = GeoLocation(latitude: 13.7522, longitude: 100.4939)地球上有很多地方,在你的应用程序中,没有一个可能是默认的。
https://stackoverflow.com/questions/35167304
复制相似问题