3

我可以理解什么是闭包。我可以理解下面的例子。

    def list = ['a','b','c','d']
    def newList = []

    def clos = { it.toUpperCase() }
    list.collect( newList, clos )

assert newList == ["A", "B", "C", "D"]  

我去看了 g:select 文档。我在下面看到了。

 <g:select optionKey="id" optionValue="${{it.title?.toUpperCase()}}" name="book.title" from="${bookList}" />

我不明白 ${{it.title?.toUpperCase()}}。

我理解每个对象标题转换为大写的逻辑,但为什么我们需要双“{}”..

为什么使用 ${it.title?.toUpperCase()} 不起作用

文档链接在此处输入链接描述

4

1 回答 1

5

外部 ${ } 不是闭包,是GSP Expression,只有内部 {} 是闭包。如果您只输入 ${it.title?.toUpperCase()} ,则不会将参数传递给闭包,而是传递实际的“it.title?.toUpperCase()”解析值。

于 2012-09-06T08:33:50.600 回答