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

red*_*888 1 arrays groovy

考虑一下:

alwaysBeArr = someFunc()
alwaysBeArr.each {
    echo "${it.dump()}"
}
Run Code Online (Sandbox Code Playgroud)

有时someFunc()返回一个字符串列表,有时只返回一个字符串.如果它只返回一个字符串".each {}"将其视为一个字符的arr.

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

Mic*_*ter 5

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

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

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

alwaysBeArr.each { println it }
Run Code Online (Sandbox Code Playgroud)