Groovy 4.0 introduit les expressions switch et les types scellés

Par:
fredericmazue

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.