Groovy 是一種基於 JVM 的敏捷開發語言,它結合了 Python、Ruby 和 Smalltalk 的許多強大的特性,Groovy 代碼可以與 Java 代碼很好地結合,也能用於擴展示有代碼。因爲其運行在 JVM 上的特性,Groovy 可使用其餘 Java 語言編寫的庫。spa
Pythoncode |
Groovy對象 |
repr(x)ip |
x.inspect(), x.dump()ci |
x.y if x else None開發 |
x?.yget |
"%(foo)s" % locals()it |
"${foo}"table |
Python擴展 |
Groovy |
not x |
!x x.empty |
len(x) |
x.size() |
for item, idx in enumerate(x): ... |
x.eachWithIndex { item, idx -> ... } |
Python |
Groovy |
{} |
[:] // an empty map |
Depends: d if used like: for k in d: list(d) if list needed d[iter].keys() explicitly |
d.keySet() |
d.[iter]values() |
d.values() |
[k+1 for k in d] |
d.collect { k, v -> k+1 } |
d = dict(zip(k, v)) |
k = 1..3 v = 'a'..'c' d = [:]; k.eachWithIndex { it, i -> d[it] = v[i] } println d // [1:"a", 2:"b", 3:"c"] |
Python |
Groovy |
range(3) |
0..<3 |
range(1, 3+1) |
1..3 |
range(0, 10, 2) |
not represented as a data type but you can use 0.step(10, 2) {...} |
"abcdef"[3:] |
"abcdef"[3..-1] |
Python |
Groovy |
m = 'strip'; getattr(' ! ', m)() |
m = 'trim'; ' ! '."$m"() |
args = ('a', 2); 'abcabc'.find(*args) |
args = ['a', 2]; 'abcabc'.indexOf(*args) |