考虑一下:
alwaysBeArr = someFunc()
alwaysBeArr.each {
echo "${it.dump()}"
}
Run Code Online (Sandbox Code Playgroud)
有时someFunc()返回一个字符串列表,有时只返回一个字符串.如果它只返回一个字符串".each {}"将其视为一个字符的arr.
是否有一种常规的方法来确保这是一个单个元素数组,即使它只返回一个字符串?
考虑一下flatten()方法.我们用结果创建一个列表(在任何一种情况下),然后展平:
def someFunc = { ->
(System.currentTimeMillis() % 2) ? 'mozart' : ['bach', 'beethoven', 'brahms']
}
def alwaysBeArr = [someFunc()].flatten()
alwaysBeArr.each { println it }
Run Code Online (Sandbox Code Playgroud)