我想做这样的事情:
func test(parameter1: Class1, parameter2: Class2 = Class2(class1: parameter1)) {
}
有什么方法可以在 Swift 中做到这一点吗?
将第二个参数设置为具有 nil 默认值的 Optional,如果它实际上是 nil,则执行您在函数主体中正在执行的操作。
这是不可能的,但你可以parameter2
可选并执行以下操作:
func test(parameter1: Class1, parameter2: Class2? = nil) {
let param2 = parameter2 ?? Class2(class1: parameter1)
}
这还不可能
但你可以像 Rob 所说的那样使用可选选项。
我在操场上试过这个:
class Class1 {
var name = ""
}
class Class2 {
var class1:Class1?
init(class1: Class1) {
self.class1 = class1
}
func printNameClass1() {
print(class1?.name ?? "No name")
}
}
func test(parameter1: Class1, parameter2: Class2? = nil ) {
parameter1.name = "Camilo"
let object2 = parameter2 ?? Class2(class1: parameter1)
object2.printNameClass1()
}
let param1 = Class1()
test(parameter1: param1)