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

Highest Stable Coin Yields – (W16 – 2024)

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

2 weeks ago

LEDU Token OTC Trading

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

1 month ago

Highest Stable Coin Yields – (W12 – 2024)

It’s another week and like always we have to explore the top yield platforms for…

1 month ago

Binance Auto Invest – the Best Innovation in Crypto since Sliced Bread

At a time where we’re constantly seeking tools and strategies to simplify our crypto investments,…

1 month ago

Highest Stable Coin Yields – March 2024

As we kick off another week, it's time to explore the top yield platforms for…

2 months ago

Education Ecosystem Featured on Business Insider

We're excited to share that Education Ecosystem was recently featured in an article on Business…

2 months ago