如何默认使用单个元素数组?

时间:2017-12-21 23:39:43

标签: arrays groovy

考虑一下:

alwaysBeArr = someFunc()
alwaysBeArr.each {
    echo "${it.dump()}"
}

有时someFunc()返回一个字符串列表,有时只返回一个字符串。如果它只返回一个字符串“.each {}”就像对待一个字符一样对待它。

是否有一种常规的方法来确保这是一个单个元素数组,即使它只返回一个字符串?

1 个答案:

答案 0 :(得分:5)

考虑flatten()方法。我们创建一个包含结果的列表(在任何一种情况下),然后展平:

def someFunc = { ->
    (System.currentTimeMillis() % 2) ? 'mozart' : ['bach', 'beethoven', 'brahms'] 
}

def alwaysBeArr = [someFunc()].flatten()

alwaysBeArr.each { println it }