我有一个非常简单的任务,我正试图在Groovy中完成,但似乎无法让它工作。我只是尝试遍历groovy中的一个map对象,并打印出键和值,但此代码不起作用。
// A simple map
def map = [
iPhone : 'iWebOS',
Android: '2.3.3',
Nokia : 'Symbian',
Windows: 'WM8'
]
// Print the values
for (s in map) {
println s + ": " + map[s]
}
我正在尝试让输出看起来像这样:
iPhone: iWebOS
Android: 2.3.3
Nokia: Symbian
Windows: WM8
有人能详细说明一下怎么做吗??
发布于 2012-04-06 07:23:30
非常简单,只有一个闭包:
def map = [
'iPhone':'iWebOS',
'Android':'2.3.3',
'Nokia':'Symbian',
'Windows':'WM8'
]
map.each{ k, v -> println "${k}:${v}" }
发布于 2013-04-20 03:08:17
或者,您可以使用Groovy Docs中所示的for
循环
def map = ['a':1, 'b':2, 'c':3]
for ( e in map ) {
print "key = ${e.key}, value = ${e.value}"
}
/*
Result:
key = a, value = 1
key = b, value = 2
key = c, value = 3
*/
与each
闭包相比,使用for
循环的一个好处是更容易调试,因为您不能在each
闭包内命中断点(当使用Netbeans时)。
发布于 2012-04-06 14:15:47
使用for循环时,s的值是一个Map.Entry元素,这意味着您可以从s.key获取键,从s.value获取值
https://stackoverflow.com/questions/10037374
复制相似问题