如何在函数中将运算符作为参数传递?
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(==)
感谢您的帮助。
提前致谢。
您必须将运算符作为 closure/function 提供给 openViewIfNeeded
。看这个例子:
typealias Operator = (Int, Int) -> Bool
func compare (_ op:Operator) {
if op(1,2) {
print ("yes")
}
}
compare(<)
然而,在函数中,您不能将运算符写成字面量;相反,您必须 "call" 闭包。
我想在函数中传递逻辑运算符作为参数。
例如
func openViewIfNeeded() {
if lastTab != 0 {
openView()
}
}
所以,我希望它作为参数,而不是直接使用 !=
运算符。
函数应该如下所示:
func openViewIfNeeded(operator) {
if lastTab (operator) 0 {
openView()
}
}
这个函数应该这样调用
self.openViewIfNeeded(!=) or self.openViewIfNeeded(==)
感谢您的帮助。
提前致谢。
您必须将运算符作为 closure/function 提供给 openViewIfNeeded
。看这个例子:
typealias Operator = (Int, Int) -> Bool
func compare (_ op:Operator) {
if op(1,2) {
print ("yes")
}
}
compare(<)
然而,在函数中,您不能将运算符写成字面量;相反,您必须 "call" 闭包。