我有以下幾點:「?」是什麼時追加到域屬性問號做
if (params.query?.equals(g.message(code: "layouts.main.search"))) {
params.query = ""
}
什麼的部分呢?
我有以下幾點:「?」是什麼時追加到域屬性問號做
if (params.query?.equals(g.message(code: "layouts.main.search"))) {
params.query = ""
}
什麼的部分呢?
它是一個safeNavigation運算符,它返回空值而不是拋出NullPointerExceptions。
入住在Groovy
提供http://docs.groovy-lang.org/latest/html/documentation/index.html#_safe_navigation_operator
從groovy.org
安全導航操作符(?)的運營商 航行安全操作來避免一個NullPointerException。通常,當您訪問某個對象時,可能需要在訪問對象的方法或屬性之前驗證它是否爲空。爲了避免這種情況,安全導航運算符將簡單地返回null而不是拋出異常,如下所示:
def user = User.find("admin") //this might be null if 'admin' does not exist
def streetName = user?.address?.street //streetName will be null if user or user.address is null - no NPE thrown
這裏的解釋是爲什麼?運營商:
http://groovy.codehaus.org/Operators#Operators-SafeNavigationOperator
你的情況?運算符保護空對象上的方法調用「等於」,例如,查詢參數無法在參數列表中找到。
http://jlorenzen.blogspot.com.br/2007/10/using-groovy-to-easily-avoid-nasty.html –
我很想知道downvote的理由和由誰? –
我降低了投票率。一個簡單的谷歌搜索回答這個問題,還有StackOverflow中的這個問題[重複](http://stackoverflow.com/questions/4581532/what-does-the-question-mark-mean-in-gsp-grails)。 –