Есть ли способ вызвать несколько конечных операторов

Есть ли способ вызвать несколько конечных операторов

Например, у меня есть цикл 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
Другие вопросы по тегам