3

这听起来可能很简单,但我有点纠结于如何打印所有内容但忽略列表中的最后一个元素的逻辑。任何建议都会有所帮助。

代码

    def list = [
        'homePage',
        'productPage',
        'basketPage',
        'categoryPage'
    ]
    def counter = 1
    list.each { element ->
        if (element == list.last()){
            list.remove(3)
            println "Item $counter -" + element 
        }
    }

预期产出

第 1项 - 主页 第
2 项 - productPage
第 3 项 - 篮子页

4

3 回答 3

3

它可以比@SteveD 答案短:

println list[0..-2]
于 2013-01-22T11:00:49.983 回答
2

Groovy 支持对集合的范围操作:

print list[0..list.size-2]

这将打印:

[homePage, productPage, basketPage]
于 2013-01-22T08:15:05.750 回答
1

解决方案:

list.take(list.size() - 1)

​ 使用 println:

list.take(list.size() - 1).eachWithIndex { element, i ->
    println "Item " + i + " - " + element
}

​</p>

于 2013-01-22T08:23:51.840 回答