簡體   English   中英

在groovy中使用“ any”函數總是返回最后一個項目關閉的結果

[英]Using “any” function in groovy always return the result of the last item closure

我正在嘗試以下內容:

"""foo
bar""".eachLine { line ->
    ['foo', 'baz'].any{
        println(it + ' - ' + line)
        line == it
    }
}

結果是:

foo - foo
foo - bar
baz - bar
false

我想測試多行字符串的任何行

"""foo
bar"""

存在於數組['foo', 'baz']

但是在這里,如果字符串中包含foo它將返回false事件。

我究竟做錯了什么 ?

嘗試:

"""foo
bar""".split('\\n').any { line -> ['foo', 'baz'].contains(line)}

您可以這樣做的一種方式:

 def multiLine = ("""foo
bar""")
List lines = multiLine.split("\n") as List
def lookingFor = ['foo','baz']

if (lookingFor.intersect(lines).size() > 0) {
        println "true"
        return true
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM