私はこれを私のGSPページで見ました。 は何ですか?は?GSP/Grailsで疑問符は何を意味しますか?
<g:textField name="name" value="${phoneInstance?.name}" />
私はこれを私のGSPページで見ました。 は何ですか?は?GSP/Grailsで疑問符は何を意味しますか?
<g:textField name="name" value="${phoneInstance?.name}" />
「安全なナビゲーション演算子」は、nullポインタ例外を簡潔に回避するGroovy機能です。 http://docs.groovy-lang.org/latest/html/documentation/index.html#_safe_navigation_operator
この場合、phoneInstance
がヌルの場合は、name
プロパティを取得しようとせず、NPEを発生させます。フィールドタグの値をnullに設定するだけです。
オペレータ?
は、Groovy(したがってGSP)でnull値を許可します。例えば、通常はGSPで、priceDetails
がnullである
<g:field name="amount" value="${priceDetails.amount}" />
場合、これはNullPointerException
をスローします。
<g:field name="amount" value="${priceDetails?.amount}" />
私たちが代わりに?
演算子を使用している場合
は...今${priceDetails?.amount}
の値が代わりにnullポインタ例外をスローする、nullです。
これはGroovyで非常に重要な機能です。オブジェクトがnullの場合(つまり、 「phoneInstance」がnullの場合)、「null」値が返されます。この機能 は「セーフナビゲーションオペレータ」と呼ばれます。単にこの機能を使用する場合、オブジェクト( "phoneInstance")をチェックする必要はありません。
安全ナビゲーション演算子(?)は、左側のオブジェクトがnullの場合はnullを返し、そうでない場合は、そのオブジェクトの正しいメンバーの値を返します。そうphoneInstance?.name
はちょうど例えばphoneInstance == null ? null : phoneInstance.name
ためshorthandnです:
if(x == null){
a = null
} else {
a = x.y
}
ありがとう:の省略形です
:
がためだけの省略形です!私はしばらくそれをグーグルしていたが、答えを見つけることはできませんでした。 –
url 404s now – juan
余分な涼しさのために、Elvis演算子で賢明なデフォルトを追加することもできます: '$ {phoneInstance?.number?: '+ 44'}'キングベイビーとロックグルーヴィー! – barrymac