[英]groovy .. passing closures as parameter to another closure
舉個例子..
def data = [1,2,3,4,5,6,7]
def someFilter = {it-> it % 2 == 0}
def newData = data.findAll{it,someFilter ->
someFilter(it)
}
newData
給我一個錯誤..
當前作用域已經在第5行,第27列包含名稱為someFilter的變量。
是否可以將一個閉包(也許是匿名地)傳遞給另一個閉包?
謝謝
您可以傳遞閉包。 我相信這就是您想要的:
def data = [1,2,3,4,5,6,7]
def someFilter = {it-> it % 2 == 0}
def newData = data.findAll someFilter
newData // results in [2, 4, 6]
要匿名傳遞閉包,
def newData = data.findAll { it % 2 == 0 }
為傳遞給閉包的第一個參數隱式定義了it
變量; 您只需要對多個變量使用箭頭語法或為第一個參數賦予不同的名稱,例如
def newData = data.findAll { nbr -> nbr % 2 == 0 }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.