2013-01-22 54 views
-2

我有以下幾點:「?」是什麼時追加到域屬性問號做

if (params.query?.equals(g.message(code: "layouts.main.search"))) { 
    params.query = "" 
} 

什麼的部分呢?

+0

http://jlorenzen.blogspot.com.br/2007/10/using-groovy-to-easily-avoid-nasty.html –

+0

我很想知道downvote的理由和由誰? –

+1

我降低了投票率。一個簡單的谷歌搜索回答這個問題,還有StackOverflow中的這個問題[重複](http://stackoverflow.com/questions/4581532/what-does-the-question-mark-mean-in-gsp-grails)。 –

回答

0

從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