我想把函数中的逻辑运算符作为参数传递。
例如。

func openViewIfNeeded() {
    if lastTab != 0 {
      openView()
    }
}

所以,我希望它作为参数,而不是直接使用!=运算符。
功能如下:
func openViewIfNeeded(operator) {
   if lastTab (operator) 0 {
      openView()
   }
}

这个函数应该像这样调用
self.openViewIfNeeded(!=) or self.openViewIfNeeded(==)

任何帮助都是感激的。
提前谢谢。

最佳答案

必须将运算符作为闭包/函数提供给openViewIfNeeded。请参见以下示例:

typealias Operator = (Int, Int) -> Bool

func compare (_ op:Operator) {
  if op(1,2) {
    print ("yes")
  }
}

compare(<)

然而,在函数中,不能将运算符作为文本编写;相反,必须“调用”闭包。

10-08 05:30