ここでまた。同じ結果になる2つの単純なことで混乱しています。私はGrailsを学んでおり、この状況を乗り越えました。
${ClassName.name}
両方の${ClassName?.name}
結果は同じです。「?」の使用の違いは何ですか? この場合?
クエスチョンマークの使い方の違いを教えてください。
ここでまた。同じ結果になる2つの単純なことで混乱しています。私はGrailsを学んでおり、この状況を乗り越えました。
${ClassName.name}
両方の${ClassName?.name}
結果は同じです。「?」の使用の違いは何ですか? この場合?
クエスチョンマークの使い方の違いを教えてください。
http://groovy.codehaus.org/Operators#Operators-SafeNavigationOperator
安全なナビゲーション演算子 (?.) 安全なナビゲーション演算子は、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