使用运算符(或综合函数)作为参数

Y Wit博士

下面的代码工作正常

  def exec(f: (Int, Int) => Boolean, p1: Int, p2: Int) = f(p1, p2)
  val >= = (x1: Int, x2: Int) => x1 >= x2
  println(exec(>=, 10, 10))

但是,问题是,是否有可能在没有显式重新定义运算符(合成函数)的情况下使其正常工作?

更新资料

显然,它像这样绝对好用

println(exec(_ >= _, 10, 10))

问题是,是否有可能在exec(>=, 10, 10)不定义功能值的情况下使其以某种形式工作

Y Wit博士

让我尝试回答我自己的问题。

比较方法Int以以下方式声明

def>=(x: Int): Boolean

因此,它们被称为一个实例Int并应用于一个参数。没有将两个方法“绑定”在一起的方法,就无法传递它们作为参数。

我们可以通过预先声明方法或功能值并将其映射到下面的>=方法中来做到这一点Int

def >= (x1: Int, x2: Int) = x1 >= x2
def >= = (_: Int) >= (_: Int)
val >= = (x1: Int, x2: Int) => x1 >= x2
val >= = (_: Int) >= (_: Int)

或通过使用匿名函数形式_ >= _

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用扩展运算符作为参数

在函数参数中使用<<运算符

为什么在结构数组中使用点运算符(。)而不是箭头运算符(->)作为函数参数?

Kotlin:将运算符作为函数参数传递

波浪号运算符作为函数参数

scala,将运算符作为函数的参数传递

如何提供(逻辑)运算符作为函数的参数

数组作为scanf的函数参数。地址运算符

Kotlin中的Elvis“ if”运算符作为函数默认参数

在Python中使用加减运算符作为参数编写函数

Excel VBA使用运算符<,>,> =,<=,并以双精度作为函数参数

我可以在Swift中使用运算符作为默认函数参数吗?

函数为什么要在传递给它的参数上使用“运算符的地址”作为指针?

使用算术运算符作为参数的scala函子

正确使用波浪号运算符作为输入参数

T-SQL:使用参数作为运算符

F#使用。[]运算符作为函数

Rust支持使用infix运算符作为函数吗?

使用new运算符作为函子/函数指针

将运算符作为参数变量

在Haskell中将运算符作为参数

C ++:使用运算符=调用多参数构造函数

使用复制运算符作为赋值运算符

运算符<<作为成员函数

运算符[]作为成员函数的正确模板参数/参数是什么?

有没有办法让函数将运算符作为c ++中的参数?

美元运算符作为sapply的函数参数未按预期工作

将 lodash every() 函数作为参数传递给 Rx.JS map() 运算符

sizeof运算符结合可变长度数组作为函数参数