Есть ли способ вызвать несколько конечных операторов
Есть ли способ вызвать несколько конечных операторов
Например, у меня есть цикл for и оператор if-else, поэтому могу ли я сделать два конца вместе, например
end[2]
или же
end*2
Мое заявление:
a.each do |i| if i<0 then l+=1 elsif i>0 then s+=1 else h+=1 end end
Здесь вы видите два конечных оператора, могу я превратить их в одно и сократить код.
Заранее спасибо :)
1 ответ
Могу я сделать два конца вместе, как
end[2]
или жеend*2
Нет, такого синтаксиса нет.
Но вы можете переписать свой код другими способами, например, через <tcode id="3180131"></tcode> и <tcode id="3180132"></tcode>:
a = [-2, -1, 0, 1, 2, 3]
counts = a.map { |i| i <=> 0 }.tally
l, s, h = counts.values_at(-1, 0, 1)
l #=> 2
s #=> 3
h #=> 1