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

问题描述 投票:1回答:1

下面的代码工作正常

  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)形式工作。

scala operators comparison-operators
1个回答
2
投票

补充my other answer,您可以这样做:

println(exec(10, 10)(_ >= _))
© www.soinside.com 2019 - 2024. All rights reserved.