반응형
Ruby : 범위를 반복하는 방법은 있지만 설정된 단위로 증가합니까?
그래서 다음과 같이 범위를 반복하고 있습니다.
(1..100).each do |n|
# n = 1
# n = 2
# n = 3
# n = 4
# n = 5
end
그러나 내가하고 싶은 것은 10 년대 반복입니다.
따라서 n
1 씩 늘리는 대신 n
실제로 10, 20, 30 등이됩니다.
전체 API는 http://ruby-doc.org/core/classes/Range.html#M000695 를 참조하십시오 .
기본적으로이 step()
방법 을 사용합니다 . 예를 들면 다음과 같습니다.
(10..100).step(10) do |n|
# n = 10
# n = 20
# n = 30
# ...
end
사용할 수 있습니다 Numeric#step
.
0.step(30,5) do |num|
puts "number is #{num}"
end
# >> number is 0
# >> number is 5
# >> number is 10
# >> number is 15
# >> number is 20
# >> number is 25
# >> number is 30
rng.step(n=1) {| obj | block } => rng
rng를 반복하여 각 n 번째 요소를 블록으로 전달합니다. 범위에 숫자 또는 문자열이 포함 된 경우 자연 순서가 사용됩니다. 그렇지 않으면 단계는 succ를 호출하여 범위 요소를 반복합니다. 다음 코드는 클래스 수준 설명서에 정의 된 클래스 X를 사용합니다.
range = Xs.new(1)..Xs.new(10)
range.step(2) {|x| puts x}
range.step(3) {|x| puts x}
생산 :
1 x
3 xxx
5 xxxxx
7 xxxxxxx
9 xxxxxxxxx
1 x
4 xxxx
7 xxxxxxx
10 xxxxxxxxxx
참조 : http://ruby-doc.org/core/classes/Range.html
......
다음은 아마도 더 친숙한 방법입니다.
for i in (0..10).step(2) do
puts i
end
참고 URL : https://stackoverflow.com/questions/4346335/ruby-how-to-iterate-over-a-range-but-in-set-increments
반응형
'Programming' 카테고리의 다른 글
외래 키는 쿼리 성능을 향상 시킵니까? (0) | 2020.06.16 |
---|---|
명령 행을 통해 Git 커밋 메시지에 느낌표 사용 (0) | 2020.06.16 |
쉘 스크립트에서 백틱 대신 $ ()를 사용하면 어떤 이점이 있습니까? (0) | 2020.06.16 |
z / OS의 C ++에서 C 소켓 API를 사용하는 방법 (0) | 2020.06.16 |
G ++를 사용하여 여러 .cpp 및 .h 파일 컴파일 (0) | 2020.06.15 |