我可以理解什么是闭包。我可以理解下面的例子。
def list = ['a','b','c','d']
def newList = []
def clos = { it.toUpperCase() }
list.collect( newList, clos )
assert newList == ["A", "B", "C", "D"]
我去看g:选择文档。我在下面看到了。
<g:select optionKey="id" optionValue="${{it.title?.toUpperCase()}}" name="book.title" from="${bookList}" />
我不理解$ {{it.title?.toUpperCase()}}。
我理解每个对象标题转换为大写的逻辑,但为什么我们需要双“{}”..
为什么使用$ {it.title?.toUpperCase()} 无法使用
答案 0 :(得分:5)
外部$ {}不是闭包,是GSP Expression,只有内部{}是闭包。如果只放入$ {it.title?.toUpperCase()},则不传递参数一个闭包,而是实际的“it.title?.toUpperCase()”解析值。