在 Groovy 中,可以使用 Range 作为列表吗?

SiK*_*ing 4 groovy

根据Groovy 文档

范围允许您创建连续值的列表。这些可以用作列表,因为 Range 扩展了 java.util.List。

但是,就我而言,我需要列表以字符串形式结束,包括方括号。我尝试了以下方法:

def myRange = 1..5
def myList = [1, 2, 3, 4, 5]
// this passes
assert myRange == myList
// both of the following fail!
assert myRange.toString() == myList.toString()
assert myRange.subList(0, 5).toString() == myList.toString()
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

tim*_*tes 5

扩展某些东西并不意味着它toString会是一样的。

如果您必须获得与列表相同的输出,请尝试

myRange.toList().toString()
Run Code Online (Sandbox Code Playgroud)

或者

"[${myRange.join(',')}]"
Run Code Online (Sandbox Code Playgroud)

或者(添加评论作为您的简单答案)

assert (1..5).toListString() == "[1, 2, 3, 4, 5]"
Run Code Online (Sandbox Code Playgroud)