다음과 같은 루프를 작성해야합니다.
if i (1..10)
do thing 1
elsif i (11..20)
do thing 2
elsif i (21..30)
do thing 3
etc...
그러나 지금까지 구문 측면에서 잘못된 길을 갔다.
답변
만약 사이에 있다면? (1, 10) 일을 1 elsif i.between? (11,20) 일을 2 ...
답변
===
연산자 (또는 그 동의어 include?
)를 사용하십시오.
if (1..10) === i
답변
@Baldu가 말했듯이 === 연산자를 사용하거나 내부적으로 ===를 사용하는 유스 케이스 / 사용 :
case i
when 1..10
# do thing 1
when 11..20
# do thing 2
when 21..30
# do thing 3
etc...
답변
여전히 범위를 사용하려면 …
def foo(x)
if (1..10).include?(x)
puts "1 to 10"
elsif (11..20).include?(x)
puts "11 to 20"
end
end
답변
일반적으로 다음과 같은 기능으로 훨씬 더 나은 성능을 얻을 수 있습니다.
if i >= 21
# do thing 3
elsif i >= 11
# do thing 2
elsif i >= 1
# do thing 1
답변
당신은 사용할 수 있습니다
if (1..10).cover? i then thing_1
elsif (11..20).cover? i then thing_2
과에 따라이 벤치 마크 빠른 루비 보다 더 빨리이다include?
답변
질문에 대한 직접적인 대답은 아니지만 “내부”와 반대되는 것을 원할 경우 :
(2..5).exclude?(7)
진실