Groovy - String每个方法

时间:2014-10-20 21:31:53

标签: groovy

我刚开始学习Groovy,看起来非常棒!

这是一个非常简单的例子。

"Groovy".each {a -> println a};

很好地打印如下所示。

G
r
o
o
v
y

我的问题是 - '每个'根据以下链接,method不是String对象的一部分。怎么会有效呢?

http://beta.groovy-lang.org/docs/latest/html/groovy-jdk/

如何获取对象闭包的参数列表?

示例String.each有1个参数,Map.each有1或2个参数,如entry或key&值。

1 个答案:

答案 0 :(得分:4)

DefaultGroovyMethods中的相关代码是

public static Iterator iterator(Object o) {
   return DefaultTypeTransformation.asCollection(o).iterator();
}

包含:

else if (value instanceof String) {
   return StringGroovyMethods.toList((String) value);
}

字符串toList是:

public static List<String> toList(String self) {
   int size = self.length();
   List<String> answer = new ArrayList<String>(size);
   for (int i = 0; i < size; i++) {
      answer.add(self.substring(i, i + 1));
   }
   return answer;
}