在方法调用中保留括号

时间:2016-08-26 10:06:14

标签: scala methods

我认为在Scala中我们可以在调用方法时离开paratnehsis。我试图这样做,但编译器抱怨:

object Objd {
  def m1(s: String) = {
    StringBuilder.newBuilder
      .append(s)
      .toString()
  }

  def m2(s : Stirng) = {
    StringBuilder.newBuilder
      .append("Another string")
      .append(";")
      .append(m1 s)  //compile error. Not applicable to String
      .toString()
  }
}

为什么在这种情况下不可能?

1 个答案:

答案 0 :(得分:1)

一般情况下你不能这样做。规则是

expr m1 arg1 m2 arg2 ...

装置

expr.m1(arg1).m2(arg2)...

在这种情况下,你没有开始链。你可以写append(this m1 s)