【问题标题】:How to pass operators as arguments in function?如何在函数中将运算符作为参数传递?
【发布时间】:2018-03-29 10:58:54
【问题描述】:

我想在函数中传递逻辑运算符作为参数。

例如

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

所以,我想要它作为参数,而不是直接使用 != 运算符。

功能应该如下:

func openViewIfNeeded(operator) {
   if lastTab (operator) 0 {
      openView()
   }
} 

这个函数应该这样调用

self.openViewIfNeeded(!=) or self.openViewIfNeeded(==)

感谢您的帮助。

提前致谢。

【问题讨论】:

    标签: ios objective-c swift arguments operators


    【解决方案1】:

    您必须将运算符作为闭包/函数提供给openViewIfNeeded。看这个例子:

    typealias Operator = (Int, Int) -> Bool
    
    func compare (_ op:Operator) {
      if op(1,2) {
        print ("yes")
      }
    }
    
    compare(<)
    

    然而,在函数中你不能将操作符写成文字;相反,您必须“调用”闭包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多