在 Swift 中,是否可以在默认参数值中使用参数值

  • 本文关键字:参数 默认 Swift 是否 swift
  • 更新时间 :
  • 英文 :


我想做这样的事情:

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)

最新更新