Swift类实例中的func数组

时间:2017-06-26 14:54:09

标签: arrays swift

如何在不对这些funcs名称进行硬编码的情况下从Swift类实例中获取前缀为某个名称的func数组?

e.g。

class Dialog {
  init() {

  }

  func stepOne(session: Session) {
    ...
  }

  func stepTwo(session: Session) {
    ...
  }

  func stepThree(session: Session) {
    ...
  }

  func someOtherFunc() {
    ...
  }

  func steps() -> [(Session) -> Void] {
    // should return [stepOne, stepTwo, stepThree];
  }
}

1 个答案:

答案 0 :(得分:0)

这些功能必须来自某个地方。它们不一定必须在Dialog中定义;它们可以是func steps()内的局部变量。例如:

func steps() -> [(Session) -> Void] {
    var allSteps: [(Session) -> Void] = []
    for i in 0..<3 {
        let currentStep: (Session) -> Void = { session in 
            print("Executing step \(i)")
        }
        allSteps.append(currentStep)
    }
    return allSteps
}