Syntax 在Groovy类中,方法调用括号内的getProperty()解析是否不同?

Syntax 在Groovy类中,方法调用括号内的getProperty()解析是否不同?,syntax,groovy,Syntax,Groovy,此代码不会生成错误。Groovy 2.2.1 public class C { def getProperty(String name) { name; } def m(x) { println x return this; } def go() { r = m x m y m z; // this is OK println r; } } 然而,这是真的 public class C { def getProperty

此代码不会生成错误。Groovy 2.2.1

public class C {
  def getProperty(String name) {
    name;
  }

  def m(x) {
    println x
    return this;
  }

  def go() {
    r = m x m y m z;  // this is OK
    println r;
  }
}
然而,这是真的

public class C {
  def getProperty(String name) {
    Keyword.intern(name);
  }

  def m(x) {
    println x
    return this;
  }

  def go() {
    println(m x m y m z); // this is NOT
  }
}
它给出了以下错误

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
foo.groovy: 39: unexpected
token: x @ line 39, column 19.
       println(m x m y m z); // this is NOT

1 error

如何在方法调用参数内部和外部进行转换?

据我所知,命令链是这种语法糖的名称,仅在语句位置受支持。至少在Groovy 1.8中引入它们时是这样的。

据我所知,命令链是这种语法糖的名称,仅在语句位置受支持。至少在Groovy 1.8中引入它们时是这样的。

谢谢!这有点让人扫兴。试图通过为其他人提供一致和无缝的API。groovy和遇到这样的事情让这很困难。至少在我的Groovy经验水平上是这样的:你可以用{printlnit}做:mxmyz,但那不是很漂亮-谢谢这有点让人扫兴。试图通过为其他人提供一致和无缝的API。groovy和遇到这样的事情让这很困难。至少在我的Groovy经验水平上是这样的:你可以用{printlnit}做:mxmyz,但那不是很漂亮-