Não consegui encontrar essa pergunta em nenhum outro lugar, então pensei em perguntar. É puramente estético? É mais rápido de alguma forma? Quais são as principais diferenças entre os dois? Por mudança normal, quero dizer
switch(var){
case 1:
break;
}
e por mudança de regra, quero dizer
switch(var){
case 1 -> {}
}
Na opção normal você pode omitir a
break
execução no final de um bloco de código. Isso permite uma falha e você pode lidar com vários casos diferentes com o mesmo código.Essa vantagem também é uma desvantagem, pois
break
pode ser facilmente esquecida e dificultar a detecção de bugs.Portanto, foi introduzida a mudança de regra, que - por sua sintaxe diferente, não requer a
break
e, portanto, evita tais situações.Java está incorporando programação funcional à linguagem. A segunda opção é equivalente à correspondência de padrões em linguagem funcional como Ocaml.
Aqui está um exemplo de contagem do número de elementos em uma lista no Ocaml.
Podemos realizar algo semelhante com Java 21.