7
比方说,比如,你有下面的代码:Swift - 使构造函数参数上的标签可选?
struct SomeStruct {
init (arg1: String, arg2: Int){
// Does Stuff with Variables
}
}
// Some Point Later
var str = "fasfsad"
var integer = 343
let smth = SomeStruct(arg1: str, arg2: integer)
是否有可能修改SomeStruct结构,使下面的代码行是否合法?
let smth = SomeStruct(str, integer)
正确的,但在原始问题的措辞上分割头发:这不会在呼叫地点使参数标签*可选* - 它要求呼叫者省略它们。函数/初始化程序声明只是指定一种调用它的语法。如果您想为多个选项提供呼叫者,请声明多个初始化者。 – rickster 2014-09-28 20:57:43
这是一个很好的观点。如果初始化器是这样定义的,'SomeStruct(arg1:str,arg2:integer)'不再是有效的调用。 – 2014-09-28 21:00:58