Kev*_*vin 167 groovy dictionary
我有一个非常简单的任务,我想在Groovy中做,但似乎无法让它工作.我只是试图循环遍历groovy中的地图对象并打印出键和值,但这段代码不起作用.
// 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]
}
Run Code Online (Sandbox Code Playgroud)
我试图让输出看起来像这样:
iPhone: iWebOS
Android: 2.3.3
Nokia: Symbian
Windows: WM8
Run Code Online (Sandbox Code Playgroud)
有人可以详细说明如何做到这一点?
Jac*_*ack 315
闭合非常简单:
def map = [
'iPhone':'iWebOS',
'Android':'2.3.3',
'Nokia':'Symbian',
'Windows':'WM8'
]
map.each{ k, v -> println "${k}:${v}" }
Run Code Online (Sandbox Code Playgroud)
ubi*_*con 96
或者,您可以使用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
*/
Run Code Online (Sandbox Code Playgroud)
使用for循环而不是each闭包的一个好处是更容易调试,因为你不能在each闭包内部(当使用Netbeans时)达到断点.
Pab*_*zos 14
另外一个选项:
def map = ['a':1, 'b':2, 'c':3]
map.each{
println it.key +" "+ it.value
}
Run Code Online (Sandbox Code Playgroud)