首页 > 解决方案 > 使用运算符(或合成函数)作为参数

问题描述

下面的代码工作正常

  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)问题是是否有可能在不定义功能价值的情况下使其以一种形式工作。

标签: scalaoperatorscomparison-operators

解决方案


补充我的其他答案,您可以这样做:

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

推荐阅读