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…

3 weeks 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…

2 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…

4 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…

7 months ago

Highest Stable Coin Yields – (W16 – 2024)

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

8 months ago

LEDU Token OTC Trading

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

9 months ago