埋め込み文字列+遅延評価

元ネタ Re: Just for fun Groovy script for Google Picasa
Venkat Subramaniam 氏の『Programming Groovy』に載っている Tips らしい*1
Groovy で pass-by-name を検索して Hit した*2
いつか使おうと思っていたが面白い使用例を思いつきそうにないので

def a,b
def s1 = "s1: ${a} + ${b} = ${a+b}"
def s2 = "s2: ${-> a} + ${-> b} = ${-> a+b}"

a = 1
b = 2
println s1
println s2

a = 3
b = 4
println s1
println s2


実行すると

s1: null + null = nullnull
s2: 1 + 2 = 3
s1: null + null = nullnull
s2: 3 + 4 = 7

*1:Thread を全部読んでいないから間違っているかも

*2:気がする。思い出せないが