You have to be aware that this java syntax prepares the way for pattern matching. I think we need to wait and see before doing it.
Le 1 mars 2018 17:45, "Paolo Di Tommaso" <paolo.ditomm...@gmail.com> a écrit : > I agree that groovy should continue to be compatible with java syntax as > long as possible. > > > Cheers, > Paolo > > > On Thu, Mar 1, 2018 at 5:28 PM, Guillaume Laforge <glafo...@gmail.com> > wrote: > >> 1) Very useful :-) >> 2) I think we should continue the compatibility with Java, like we're >> doing for Groovy 3, and add that syntax when it's finalized. >> 3) It's too early to think about the implementation, let's wait till the >> syntax is crystalized first! >> >> But yeah, I like the idea of supporting it. >> (and we could potentially support it before the Java version containing >> it is released) >> >> Guillaume >> >> >> On Thu, Mar 1, 2018 at 4:39 PM, Jesper Steen Møller <jes...@selskabet.org >> > wrote: >> >>> Hi list >>> >>> Java 11 (or perhaps 12) might see a new functionality known as switch >>> expressions (https://bugs.openjdk.java.net/browse/JDK-8192963). >>> >>> While the current Groovy implicit return functionality works with the >>> switch statement as-is, the switch* expression* is a more general >>> construct, basically it is to the conditional operator (a ? b : c) what the >>> switch *statement* is to if/then/else-if/else. An example: >>> >>> int numLetters = switch (day) { >>> case MONDAY, FRIDAY, SUNDAY -> 6; >>> case TUESDAY -> 7; >>> case THURSDAY, SATURDAY -> 8; >>> case WEDNESDAY -> 9; >>> }; >>> >>> with >>> >>> case LABEL -> expression; >>> >>> essentially sugar for >>> >>> case LABEL: break expression; >>> >>> As I see it: It could add utility to the Groovy language, and adopting >>> it would keep up the the Java-compatibility gap, which I think is a >>> valuable gateway-drug to discovering the joys of Groovy. The "break >>> <expression> syntax isn't pretty, but the arrows look fine and incur no >>> syntax compatibility problem, as far as I can see. >>> >>> Now, this being Groovy, the cases should surely support the extended >>> "isCase"-support, as described so well here: >>> http://mrhaki.blogspot.dk/2009/08/groovy-goodness-switch-statement.html >>> >>> So, three questions remain: >>> 1) Useful or not? >>> 2) This Java compatibility - is it still a thing? I remember a similar >>> proposal a little while back, but this would align better with Java. >>> 3) This could be implemented using existing AST's if we *really* want >>> to, but it would be clumsy. This AST transformer compatibility - is it >>> still a thing? >>> >>> -Jesper >>> >>> >>> >>> >> >> >> -- >> Guillaume Laforge >> Apache Groovy committer & PMC Vice-President >> Developer Advocate @ Google Cloud Platform >> >> Blog: http://glaforge.appspot.com/ >> Social: @glaforge <http://twitter.com/glaforge> / Google+ >> <https://plus.google.com/u/0/114130972232398734985/posts> >> > >