快速参数标签和关键字
我正在尝试学习 Swift 并遇到参数标签和一个在线示例,如下所示:
func setAge(for person: String, to value: Int) {
print("(person) is now (value)")
}
这可以被称为:
setAge(for: "Paul", to: 40)
我的问题是这不是forSwift 关键字吗?我想知道这种使用是否for有一些我遗漏的隐藏含义,或者只是这些关键字也可以用作参数标签?
回答
或者只是这些关键字也可以用作参数标签?
确切地。这在SE-0001 Allow (most) Keywords as argument labels 中引入。动机是:
有时,对于语言的关键字,如参数一致时,最自然的标签
in,repeat或defer。应该允许这样的关键字作为参数标签,以便更好地表达这些接口。
尽管在 SE-0001 中说inout,var和let不允许作为参数标签(当时它们用于描述参数的可变性)。这个限制后来放宽了。现在, onlyinout不允许作为参数标签,如果使用var或let作为参数标签,则会收到警告。