Constructor Swift-使构造函数参数上的标签可选?
比如说,您有以下代码:Constructor Swift-使构造函数参数上的标签可选?,constructor,swift,Constructor,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结构以使以下代码
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)
是的,您可以使用下划线作为外部参数名称使参数匿名:
struct SomeStruct {
init (_ arg1: String, _ arg2: Int){
// Does Stuff with Variables
}
}
以下是如何做到这一点:
struct A {
var a: String
var b: String
init(_ a: String,_ b: String) {
self.a = a
self.b = b
}
}
var x = A("S", "B")
正确,但要对原始问题的措辞进行梳理:这并没有使参数标签在调用站点上成为可选的,而是要求调用方省略它们。函数/初始值设定项声明只指定一种用于调用它的语法。如果您想为调用者提供多个选项,请声明多个初始值设定项。这是一个很好的观点。如果以这种方式定义初始值设定项,
SomeStruct(arg1:str,arg2:integer)
不再是有效的调用。