2

É um consenso geral que a palavra nobreak nesse contexto faria mais sentido do que else.

Pode mostrar onde se encontra o consenso? E o porquê de ser melhor algo que eu acho pior?

Nesse caso, o fallthrough força a execução do próximo case do switch (independente da condição ser verdadeira ou não), e novamente: "Por qual razão eu utilizaria isso?"

Que condição? Não tem, então essa afirmação não faz sentido. De qualquer forma, como não é uma consdição essa palavra-chave faz o fluxo ter resultado parecido com um or, algo necessário em mu itos cenários. Dá até para questionar se deveria ter isso, porque quando precisa, seria melhor um if, porém geralmente p switch tem uma otimização interna mais complicada de fazer com um if.

Acho essas ocorrências um tanto quanto engraçadas, porque as vezes parece que a linguagem tenta inovar e criar algum utilitário ou syntactic sugar para coisas básicas, mas na verdade ela cria uma feature que pouquíssima gente usa e que só faz sentido para aquela linguagem.

É só minha opinião, mas não vejo graça alguma, e se poucas pessoas usam é porque poucas pessoas, provavelmente em especial que programam em Ruby, não entendem o que estão fazendo, apenas seguem receita de bolo. Eu até acho um pouco exagerado ter isso, mas tem uma utilidade de tornar o código ligeiramente mais legível para evitar uma negação de condição. Talvez o criador, para não dar o braço a torcer ainda defenda a criação, mas no fundo ele sabe que foi exagerado. E nem foi tão inovador, e parece ter sido feito nas coxas porque já existia antes o repeat-until que se parece cim o do-whiile mas com condição negada.

Aqui eu e outras pessoas colocamos algumas formas alternativas de controle de fluxo: https://stackoverflow.com/q/4293744/221800. Não quer dizer que são boas, até por isso raramente se vê em linguagens.

Um dia farei um artigo/vídeo sobre features em linguagens de programação pouco usuais.

https://www.tabnews.com.br/maniero/faq-do-programador-perdidao.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).

Carregando publicação patrocinada...
1

Opa, obrigado pelo comentário! S2

No que você perguntou sobre as condições, eu digo isso porque os cases em Go podem ser usados como condições mesmo (não apenas avaliação de igualdade).

Você pode entender a palavra "condição" no contexto da minha frase como "case" também.


Ah, e sobre o "consenso".

Talvez "consenso" seja um pouco forte, mas sim, parte da comunidade e dos desenvolvedores da linguagem concordam com isso.

Raymond Hettinger recomendada, quando se usa um while-else, deixar um comentário explicando o que aquele else faz.

Ele também concorda que se o else fosse substituído por nobreak isso se tornaria mais intuitivo.