我想做这样的事情:
func test(parameter1: Class1, parameter2: Class2 = Class2(class1: parameter1)) {
}
在Swift中有什么方法可以做到吗?
答案 0 :(得分:4)
使第二个参数为Optional,默认值为nil,如果实际上为nil,则在函数主体中进行操作。
答案 1 :(得分:1)
这是不可能的,但是您可以将parameter2
设置为可选,并执行以下操作:
func test(parameter1: Class1, parameter2: Class2? = nil) {
let param2 = parameter2 ?? Class2(class1: parameter1)
}
答案 2 :(得分:0)
那还不可能
但是您可以按照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)