什么情况下结构体中存储的属性没有默认值?
Under what kind of circumstance would a stored property in a structure not have a default value?
我是 Swift 的新手,正在尝试学习 Memberwise Initialisers 的概念。以下声明来自"The Swift Programming Language 2.1".
我的问题是,在什么样的情况下,存储在结构中的属性不会有默认值?一个带有解释的例子将不胜感激。
Memberwise Initializers for Structure Types
Structure types automatically receive a memberwise initializer if they
do not define any of their own custom initializers. Unlike a default
initializer, the structure receives a memberwise initializer even if
it has stored properties that do not have default values.
例如,当没有合理的默认值时:
struct GeoLocation {
let latitude: Float
let longitude: Float
}
let geoLocation = GeoLocation(latitude: 13.7522, longitude: 100.4939)
地球上有很多点,none 作为您应用中的默认值可能有意义。
struct Human {
var legs = 2
var name: String
}
是一个结构,其中 name
没有默认值。你不能有默认的初始值设定项Human()
,因为你不能提供名称;但您可以使用成员初始化器 Human(legs: 1, name: "Lame Harry")
.
我是 Swift 的新手,正在尝试学习 Memberwise Initialisers 的概念。以下声明来自"The Swift Programming Language 2.1".
我的问题是,在什么样的情况下,存储在结构中的属性不会有默认值?一个带有解释的例子将不胜感激。
Memberwise Initializers for Structure Types
Structure types automatically receive a memberwise initializer if they do not define any of their own custom initializers. Unlike a default initializer, the structure receives a memberwise initializer even if it has stored properties that do not have default values.
例如,当没有合理的默认值时:
struct GeoLocation {
let latitude: Float
let longitude: Float
}
let geoLocation = GeoLocation(latitude: 13.7522, longitude: 100.4939)
地球上有很多点,none 作为您应用中的默认值可能有意义。
struct Human {
var legs = 2
var name: String
}
是一个结构,其中 name
没有默认值。你不能有默认的初始值设定项Human()
,因为你不能提供名称;但您可以使用成员初始化器 Human(legs: 1, name: "Lame Harry")
.