Hi Jochen, > Do we really? If we really want to support it, we should support its > use-case, which is a Lexer. Writing an efficient lexer in Groovy would > be way off with switch expressions, because of the transformation to > Closure and the overhead it involves.
To be frank, I'm not sure if we really want to support it. I think Groovy should be groovy, but Groovy has to be keep compatibility with Java... I think Groovy should be able to do better, and it can transform all statements to expressions, e.g. 1) switch-case ``` def a = 6 def r = #( switch (a) { case 6: yield 'a' default: yield 'b' } ) assert 'a' == r ``` 2) if-else ``` def a = 6 def r = #( if (a == 6) yield 'a' else yield 'b' ) assert 'a' == r ``` 3) for ``` def r = #( for (int i = 0; i < 2; i++) { if (1 == i) yield i } ) assert 1 == r ``` Cheers, Daniel.Sun ----- Apache Groovy committer & PMC member Blog: http://blog.sunlan.me Twitter: @daniel_sun -- Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html