我看到{}用于闭包,然后我相信当一个$放在大括号前面时,它只是在一个字符串中进行变量替换.我找不到关于$如何在引用中工作的文档...很遗憾难以搜索它,并且Groovy String文档缺乏引入它.能否请您指出文档和/或解释Groovy中的"$"运算符 - 如何使用它?Grails是否将其扩展到Groovy之外?
Dón*_*nal 37
Grails不会将$的使用范围扩展到Groovy之外.这是$的两个实际用法
在GString中,您可以使用$ without {}来评估属性路径,例如
def date = new Date()
println "The time is $date.time"
Run Code Online (Sandbox Code Playgroud)
如果要评估比属性路径更复杂的表达式,则必须使用$ {},例如
println "The time is ${new Date().getTime()}"
Run Code Online (Sandbox Code Playgroud)
动态访问属性
def prop = "time"
new Date()."$prop"
Run Code Online (Sandbox Code Playgroud)
动态调用方法
def prop = "toString"
new Date()."$prop"()
Run Code Online (Sandbox Code Playgroud)
正如评论中所指出的,这实际上只是字符串插值的一个特例,因为以下内容也是有效的
new Date().'toString'()
Run Code Online (Sandbox Code Playgroud)
Ove*_*ous 11
$不是Groovy中的运算符.在字符串替换中,它标识字符串中的变量 - 那里没有魔法.它是许多模板和编程语言中用于内联变量的通用格式.
这里列出了所有特殊的Groovy运算符:http://groovy-lang.org/operators.html
| 归档时间: |
|
| 查看次数: |
60162 次 |
| 最近记录: |