美文网首页
groovy学习中的疑问

groovy学习中的疑问

作者: 许先森的许 | 来源:发表于2016-06-30 10:43 被阅读23次

    def number =1def eagerGString ="value == ${number}"def lazyGString ="value == ${ -> number }"asserteagerGString =="value == 1"assertlazyGString =="value == 1"number =2asserteagerGString =="value == 1"assertlazyGString =="value == 2"

    可以看见,eagerGString是普通的双引号插值站位替换,lazyGString是双引号闭包插值替换,我们可以发现在number变为2以后他们的运算结果就有了差异。可以明显推理到结论,一个普通插值表达式值替换实际是在GString创建的时刻,一个包含闭包的表达式由于延迟运算调运toString()方法,所以会产生一个新的字符串值。

    原文以上。

    然后我验证:

    为什么说这个是闭包的延迟运算导致  我怎么看像是响应式

    相关文章

      网友评论

          本文标题:groovy学习中的疑问

          本文链接:https://www.haomeiwen.com/subject/cpnxjttx.html