将参数传递给前缀表示法

时间:2016-08-19 18:30:25

标签: scala

有一个函数F和一个参数P,你通常会说F(P)。但是,我正在寻找P.applyTo(F)的符号。

我知道我可以建立一个隐含的类来做魔术。但是,有什么内置的吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试过对postFix的内置支持?您可以查看language.postFix,但无需导入即可使用它。以:结尾的List(1, 2, 3) ::: List(4, 5, 6)方法,在prepend上调用List(4, 5, 6)方法,创建List(1, 2, 3, 4, 5, 6)。方法名称末尾的额外:代表后缀应用程序。

object Main {
  def main(args: Array[String]): Unit = {
    val a1 = A("first")
    val a2 = A("second")
    val res = a1 >> a2
    val res2 = a1 >>: a2
    println(res) //yields "firstsecond"
    println(res2) //yields "secondfirst"
  }

  case class A(name: String) {
    def >>:(a: A): String = name + a.name
    def >>(a: A): String = name + a.name
  }
}