Groovy 4.0 introduit les expressions switch et les types scellés
mar, 01/03/2022 - 13:02
Langage Groovy vient de sortir en version 4.0. Parmi les nouveautés les plus remarquables viennent les expressions switch et les types scellés.
Expressions switch
Dans les constructions switch à l'ancienne, les instructions break encombrent le code. Par exemple :
def result
switch(i) {
case 0: result = 'zero'; break
case 1: result = 'one'; break
case 2: result = 'two'; break
default: throw new IllegalStateException('unknown number')
}
Les nouvelles expressions switch, qui empruntent beaucoup à Java, permettent d'écrire un code plus élégant :
def result = switch(i) {
case 0 -> 'zero'
case 1 -> 'one'
case 2 -> 'two'
default -> throw new IllegalStateException('unknown number')
}
Si plusieurs instructions sont nécessaires à droite de ->, un bloc peut être utilisé
case 0 -> { def a = 'ze'; def b = 'ro'; a + b }
Types scellés (sealed)
Les classes, interfaces et traits scellés (sealed) limitent les autres classes ou interfaces qui peuvent les étendre ou les implémenter. Groovy prend en charge l'utilisation d'un mot-clé sealed ou d'une annotation @Sealed lors de l'écriture d'un type scellé. Les sous-classes autorisées pour un type scellé peuvent être spécifiées explicitement, à l'aide d'une clause permits avec le mot-clé sealed ou un attribut d'annotation permittedSubclasses pour @Sealed, ou détectées automatiquement si vous compilez tous les types pertinents en même temps.