0

我是 Swift 新手,正在尝试学习 Memberwise Initialisers 的概念。下面的语句来自“The Swift Programming Language 2.1”。

我的问题是,在什么样的情况下,结构中的存储属性不会有默认值?一个带有解释的例子将不胜感激。

结构类型的成员初始化器

如果结构类型没有定义任何自己的自定义初始值设定项,则结构类型会自动接收成员初始值设定项。与默认初始值设定项不同,结构接收成员初始值设定项,即使它存储了没有默认值的属性。

4

2 回答 2

1

例如,当没有合理的默认值时:

struct GeoLocation {
  let latitude: Float
  let longitude: Float
}

let geoLocation = GeoLocation(latitude: 13.7522, longitude: 100.4939)

地球上有很多点,在您的应用程序中作为默认点可能没有意义。

于 2016-02-03T02:17:17.977 回答
1
struct Human {
    var legs = 2
    var name: String
}

是一个name没有默认值的结构。你不能有默认的初始化器Human(),因为你不能提供名字;但您可以使用成员初始化程序Human(legs: 1, name: "Lame Harry")

于 2016-02-03T02:17:21.723 回答