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-homePage
アイテム2-productPage
アイテム3-basketPage

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 に答える