Подтвердить что ты не робот

Использование "$" в Groovy

Я вижу, что {} используются для замыканий, и тогда я верю, когда перед фигурными скобками стоит $, он просто выполняет замену переменных внутри строки. Я не могу найти документацию о том, как работает $в ссылке... трудно найти на нем, к сожалению, и в документации Groovy String отсутствует представление об этом. Не могли бы вы указать мне документацию и/или объяснить оператор "$" в Groovy - как все это можно использовать? Действительно ли Grails расширяет его за пределами Groovy?

4b9b3361

Ответ 1

В строке GString (groovy) любое допустимое выражение Groovy может быть заключено в ${...}, включая вызовы методов и т.д.

Это подробно описано в следующей странице.

Ответ 2

Grails не расширяет использование $за пределами Groovy. Вот два практических применения $

Интерполяция строк

Внутри GString вы можете использовать $without {} для оценки пути свойства, например.

def date = new Date()
println "The time is $date.time"

Если вы хотите оценить выражение, которое является более сложным, чем путь свойства, вы должны использовать ${}, например.

println "The time is ${new Date().getTime()}"

Выполнение динамического кода

Динамический доступ к свойству

def prop = "time"
new Date()."$prop"

Динамический вызов метода

def prop = "toString"
new Date()."$prop"()

Как отмечалось в комментариях, это действительно просто частный случай интерполяции строк, поскольку также справедливо следующее:

new Date().'toString'()

Ответ 3

$ не является оператором в Groovy. В подстановке строк он идентифицирует переменные внутри строки - там нет волшебства. Это общий формат, используемый для встроенных переменных во многих языках шаблонов и программирования.

Здесь перечислены все специальные операторы Groovy: http://groovy-lang.org/operators.html