Ruby에서 사용하고있는 루프 for
을 보았을 때의 대부분은 Ruby를 잘 아는 사람이 없습니다. 일반적으로 for
루프가 each
과 같은 블록을 사용하는 반복기로 대체 될 때 훨씬 더 읽기 쉽습니다.for 루프 사용?
for
은 블록이있는 반복기로 쉽게 다시 쓸 수 없거나 for
을 사용하는 이점이 있습니까?
for
은 키워드이기 때문에 for
이 반복기 방법보다 빠릅니다. for
의 목적은 무엇입니까?
Ruby에서 사용하고있는 루프 for
을 보았을 때의 대부분은 Ruby를 잘 아는 사람이 없습니다. 일반적으로 for
루프가 each
과 같은 블록을 사용하는 반복기로 대체 될 때 훨씬 더 읽기 쉽습니다.for 루프 사용?
for
은 블록이있는 반복기로 쉽게 다시 쓸 수 없거나 for
을 사용하는 이점이 있습니까?
for
은 키워드이기 때문에 for
이 반복기 방법보다 빠릅니다. for
의 목적은 무엇입니까?
블록 구문은 일반적 루비 커뮤니티 바람직이 출력했을
numbers = [1, 2, 3]
numbers.each do |n|
# do nothing
end
begin
puts n
rescue Exception => e
puts e.message
end
for n in numbers do
# do nothing
end
puts "still: #{n}"
.
for
또는 each
을 사용하는 동안 변수 범위에 약간의 차이가 있습니다. for
루프 내에서 선언 된 변수는 루프 외부에서 사용할 수 있습니다. 여기서 each
블록 내의 변수는 블록에 대해 로컬이므로 변수 외부에서 사용할 수 없습니다.
그것은 변수 오염 문제입니다; 'for'는 변수 공간을 불필요하게 오염시킵니다. –
나는 6-31 년 전에 Rails의 책에서 for
루프를 많이 보았습니다. 그러나 더 이상 선호하지 않습니다.
반복기 변수의 범위에 차이가 있습니다. 다음 예를 보자
# undefined local variable or method `n' for main:Object
# still: 3
v1.8을 사용하지는 않았지만, 1.9 이전에 'n'이 이전에 초기화 된 경우'numbers.each do | n | ..end' 다음에'n'이 범위에 있음을 이해합니다 (예 :'n = 0 '). 어쨌든, 나는 sawa가 스코프의 차이를 알고 있고, 만약 존재한다면, 다른 어떤 장점도 for를 사용하는 것을 찾고 있다고 확신한다. –
+1 좋은 질문입니다. 나는 downvotes가 독점적으로 루프를 사용하는 독자들로부터 왔다고 생각합니다. 일반적으로 인덱스를 반복합니다. 아, 우린 절대 모를거야. 어쨌든, 나는 그 토론을 읽기를 고대한다. 나는 객관적인 대답을 요구하는 문제의 측면에서 끝나기를 기대하지 않습니다. 흠, 어쩌면 새 와우가 각 다운 보트에 대해 9 점을 주겠다고 생각했습니다. –
아마 맞았을 것입니다. 투표 수 : +6, -4. 전에는 못 봤어. –