생성 된 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
이 null 인 경우 name
속성을 얻지 못하고 NPE가 발생합니다. 단지 필드 태그의 값을 null로 설정합니다.
?
연산자는 Groovy (및 GSP)에서 널값을 허용합니다. 예를 들어, 일반적으로 GSP에서, priceDetails
가 null
<g:field name="amount" value="${priceDetails.amount}" />
경우, 이것은 NullPointerException
발생합니다.
<g:field name="amount" value="${priceDetails?.amount}" />
우리가 대신 ?
연산자를 사용하는 경우
... 편지 ${priceDetails?.amount}
의 값 대신 널 포인터 예외를 던지는 null입니다.
이것은 Groovy에서 매우 중요한 기능입니다. 객체가 null 인 경우 (즉, "phoneInstance"가 null 인 경우) "null"값을 제공합니다. 이 기능은 을 "안전한 내비게이션 운영자"라고합니다. 간단히이 기능을 사용할 때 객체 ("phoneInstance")를 확인할 필요가 없거나 null이 아닙니다.
안전 탐색 연산자 (?.)는 왼쪽 개체가 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