私は次のものを持っています:
if (params.query?.equals(g.message(code: "layouts.main.search"))) {
params.query = ""
}
「?」は何を意味しますか? 一部ですか?
私は次のものを持っています:
if (params.query?.equals(g.message(code: "layouts.main.search"))) {
params.query = ""
}
「?」は何を意味しますか? 一部ですか?
これは、NullPointerExceptions をスローする代わりに null を返す safeNavigation オペレーターです。
Groovy で使用可能な演算子を確認する
http://docs.groovy-lang.org/latest/html/documentation/index.html#_safe_navigation_operator
groovy.org から
安全なナビゲーション演算子 (?.) 安全なナビゲーション演算子は、NullPointerException を回避するために使用されます。通常、オブジェクトへの参照がある場合、オブジェクトのメソッドまたはプロパティにアクセスする前に、それが null でないことを確認する必要がある場合があります。これを回避するために、セーフ ナビゲーション オペレータは次のように、例外をスローする代わりに単純に 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
あなたの場合は?演算子は、null オブジェクトでのメソッド呼び出し「equals」を保護します。たとえば、パラメーター リストにクエリ パラメーターが見つかりません。