什么情况下结构体中存储的属性没有默认值?

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").