在Groovy中,你可以使用Range作为List吗?

时间:2014-01-14 23:03:49

标签: groovy

根据Groovy docs

  

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

但是,在我的情况下,我需要List作为String结束,包括方括号。我尝试了以下方法:

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()

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

扩展某些内容并不意味着它的toString将是相同的。

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

myRange.toList().toString()

或者

"[${myRange.join(',')}]"

或(添加评论作为一个简单的答案)

assert (1..5).toListString() == "[1, 2, 3, 4, 5]"