gpt4 book ai didi

swift - 为什么我必须以键值形式将参数传递给类?

转载 作者:行者123 更新时间:2023-11-30 10:20:09 25 4
gpt4 key购买 nike

class NamedShape {
var numberOfSides: Int = 0
var name: String

init(name: String) {
self.name = name
}

func simpleDescription() -> String {
return "A shape with \(numberOfSides) sides named \(name)"
}
}

我有以下示例类。要创建一个新实例,我这样做

let shape = NamedShape(name: "Test")

参数由 init() 函数捕获,对吧?但是,如果我这样做:

let shape = NamedShape("Test")

我收到缺少参数标签错误!

但是,如果我定义一个像这样的愚蠢函数:

func printInt(numberIn: Int) {
println(numberIn)
}

我可以使用以下方式调用它:

printInt(5)

但是,如果我尝试使用以创建类的方式格式化的参数来调用它:

printInt(numberIn: 5)

我收到无关参数标签错误!

帮助快速菜鸟理解。为什么我需要标记类参数,但不能标记函数参数?为什么函数和类会有这样的不同?我确信我缺少一些东西。

最佳答案

由于初始化函数不是使用函数名称调用的,因此参数类型和名称用于消除多个 init() 函数之间的歧义。因此,init() 函数参数默认具有外部名称。

您可以使用下划线明确选择退出默认参数名称:

init(_ name: String) {
self.name = name
}

关于swift - 为什么我必须以键值形式将参数传递给类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27239518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com