2013-07-11 3 views
1

В связи с latest documentation of Grails, мы можем прочитать:нотация динамических запрашивая ассоциации

запрашивая ассоциации. Ассоциации могут быть также использованы в запросах:

def author = Author.findByName("Stephen King") 

def books = author ? Book.findAllByAuthor(author) : [] 

Я хотел бы знать, что есть смысл ? и : []

ответ

1

Shorthand if заявление в GroovyJava см первый комментарий).

def books = author ? Book.findAllByAuthor(author) : [] 

является эквивалентом:

def books 
if (author) { 
    books = Book.findAllByAuthor(author) 
} 
else { 
    books = [] 
} 

Смотрите elvis operator (Groovy только не Java) here.

+1

Это Java-тернарный оператор, не относящийся к Groovy. Да, оператор Элвиса был добавлен в Groovy. – dmahapatro

+0

и '[]' - это строчная строка для 'new ArrayList()' (аналогично '[:]' означает 'new LinkedHashMap()') –

Смежные вопросы