2011-07-06 9 views

cevap

90

Davaya/ne zaman başvurduğunuzu farz ediyorum.

case a_variable # a_variable is the variable we want to compare 
when 1 #compare to 1 
    puts "it was 1" 
when 2 #compare to 2 
    puts "it was 2" 
else 
    puts "it was something else" 
end 

veya

puts case a_variable 
when 1 
    "it was 1" 
when 2 
    "it was 2" 
else 
    "it was something else" 
end 

DÜZENLEME belki değil Herkesin bildiği ama ne çok yararlı olabilir size bir vaka açıklamada İfadelerinin kullanabilirsiniz olmasıdır

şey.

foo = "1Aheppsdf" 

what = case foo 
when /^[0-9]/ 
    "Begins with a number" 
when /^[a-zA-Z]/ 
    "Begins with a letter" 
else 
    "Begins with something else" 
end 
puts "String: #{what}" 
+0

Çok teşekkürler. A_variable'ı params [: id] ile değiştirebilir miyim? – glarkou

+0

Kesinlikle, aynı türden değişkenleri karşılaştırdığınızdan emin olun, örn. "1", 1'e eşit değil. Ancak "1" .to_i, 1'e eşittir (to_i, bir dizgiyi bir tamsayıya dönüştürür). Eğer params [: id] ile bir tamsayı karşılaştırmak istiyorsanız "case params [: id] .to_i" yapmalısınız. Paramları [: id] "case" ile test etmek bana biraz garip geliyor, ne yaptığınızdan emin misin? –

+0

Teşekkürler dostum. Bu gerçekten yardımcı oldu. Bence sorun buydu! – glarkou