Ruby – Como Escrever um Switch Statement?

Em linguagens de programação, como Ruby, um “switch statement” é um tipo de mecanismo de controle de seleção utilizado para que o valor de uma variável ou expressão seja verificado e o programa assuma um novo caminho a partir daquele ponto. Em Ruby, ele é implementado utilizando-se o argumento case.

Case como Switch Statement no Ruby com parâmetro

No Ruby, o argumento “case” é utilizado em conjunto com o “when” e o “else”. Abaixo vemos alguns exemplos da utilização do case com parâmetro e como ele se comporta de acordo com o tipo de declaração em cada “when”.

case a
when 1
  puts "Um valor único"
when 2, 3
  puts "Um dos valores separados por vírgula"
when 4..6
  puts "Qualquer um entre 4, 5, 6"
when 7...9
  puts "Algum entre 7, 8, mas não o 9"
else
  puts "Qualquer outra coisa"
end

 Cada “when” declara uma situação onde o parâmetro “a” possui um valor possível, que será comparado com o argumento “a”. Estes seriam os “casos” em que se deseja fazer esta avaliação. Depois de todos os casos listados, utiliza-se o “else” para cobrir todas as outras possibilidades.

Case como Switch Statement no Ruby sem parâmetro

case
when b < 3
  puts "Menor do que 3"
when b == 3
  puts "Igual a 3"
when (1..10) === b
  puts "Algo dentro da faixa entre [1..10]"
end

Observe que quando o parâmetro não é declarado no case, cada um dos “when” precisa ter o parâmetro declarado, para que a comparação possa ser executada.

Você tem mais a acrescentar sobre este assunto? Coloque seus comentários na seção abaixo!

Caso deseje explorar outras questões, pode conferir nossos vídeos sobre Ruby. Abaixo estão alguns exemplos:

 

 

Você também pode se inscrever em alguns canais que fazem broadcast em Ruby, como os a seguir:

 johnhamelink

 

 

 rusticflare

 

 

Outra maneira legal de descobrir mais coisas interessantes sobre Ruby é acessar nossa página de projetos

Dr. Michael J. Garbade

I, Dr. Michael J. Garbade is the co-founder of the Education Ecosystem (aka LiveEdu), ex-Amazon, GE, Rebate Networks, Y-combinator. Python, Django, and DevOps Engineer. Serial Entrepreneur. Experienced in raising venture funding. I speak English and German as mother tongues. I have a Masters in Business Administration and Physics, and a Ph.D. in Venture Capital Financing. Currently, I am the Project Lead on the community project -Nationalcoronalvirus Hotline I write subject matter expert technical and business articles in leading blogs like Opensource.com, Dzone.com, Cybrary, Businessinsider, Entrepreneur.com, TechinAsia, Coindesk, and Cointelegraph. I am a frequent speaker and panelist at tech and blockchain conferences around the globe. I serve as a start-up mentor at Axel Springer Accelerator, NY Edtech Accelerator, Seedstars, and Learnlaunch Accelerator. I love hackathons and often serve as a technical judge on hackathon panels.

View Comments

Recent Posts

Blockchain in Elections: A Leap Toward Transparent Democracy

In 2024 we're witnessing a critical point in democratic technology: the integration of blockchain and…

4 months ago

Win Big with Our Amazon Fire Max 11 & AirPods Pro Giveaway!

We’re thrilled to announce an exciting opportunity for you to win not one but two…

6 months ago

Unleashing Potential: How Education Ecosystem Transforms Learning into Real-World Success

Acquiring practical skills is crucial for career advancement and personal growth. Education Ecosystem stands out…

8 months ago

The Role of Artificial Intelligence in Modern Software Development

Artificial Intelligence (AI) has been making significant strides in various industries, and the software development…

11 months ago

Highest Stable Coin Yields – (W16 – 2024)

Another week to bring you the top yield platforms for three of the most prominent…

12 months ago

LEDU Token OTC Trading

If you hold a large volume of LEDU tokens above 1 million units and wish…

1 year ago