【发布时间】:2019-06-27 07:52:05
【问题描述】:
我是 Swift 新手,并且关注在线文档。具体来说,我正在查看初始化 (https://docs.swift.org/swift-book/LanguageGuide/Initialization.html)。
在“结构类型的成员初始化器”子标题下,它说:
当你调用一个成员初始化器时,你可以省略任何值 具有默认值的属性。在上面的示例中,大小 结构的高度和宽度都有默认值 特性。您可以省略任何一个属性或两个属性,并且 初始化器对您省略的任何内容使用默认值
然后提供一个例子:
struct Size {
var width = 0.0, height = 0.0
}
let twoByTwo = Size(width: 2.0, height: 2.0)
let zeroByTwo = Size(height: 2.0)
print(zeroByTwo.width, zeroByTwo.height)
// Prints "0.0 2.0"
let zeroByZero = Size()
print(zeroByZero.width, zeroByZero.height)
// Prints "0.0 0.0"
但是,如果我尝试这样做,我会收到 zeroByTwo 初始化错误:
无法使用类型为“(height: Double)”的参数列表调用类型“Size”的初始化程序
我是不是误会了什么?
我正在使用 Swift 5。
【问题讨论】:
-
该代码在 Swift 操场上对我来说工作得很好。你用的是什么版本的 Xcode?span>
-
这需要 Swift 5.1 (Xcode 11 beta)
标签: swift