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

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.

Soumis par fredericmazue le mar, 01/03/2022 - 13:02