繁体   English   中英

如何将运算符作为函数中的参数传递?

[英]How to pass operators as arguments in function?

我想将逻辑运算符作为参数传递给函数。

例如

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(<)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM