루비: 범위 내에서, 그러나 세트 증분으로 반복하는 방법은 무엇입니까?
그래서 저는 다음과 같은 범위에서 반복하고 있습니다.
(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
사용할 수 있습니다.
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
이를 위한 또 다른 친숙한 방법이 있습니다.
for i in (0..10).step(2) do
puts i
end
rng.step(n=1) {| obj | block } => rng
각 n번째 요소를 블록에 전달하면서 erng을 반복합니다.범위에 숫자 또는 문자열이 포함된 경우 자연 순서가 사용됩니다.그렇지 않으면 step이 범위 요소를 통해 성공을 반복합니다.다음 코드는 클래스 수준 설명서에 정의된 클래스 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
......
언급URL : https://stackoverflow.com/questions/4346335/ruby-how-to-iterate-over-a-range-but-in-set-increments
'programing' 카테고리의 다른 글
다른 분기에서 변경 사항을 가져오는 방법 (0) | 2023.07.04 |
---|---|
유형을 인덱스 유형으로 사용할 수 없습니다. (0) | 2023.07.04 |
C의 배열에 여러 값 할당 (0) | 2023.07.04 |
PL/SQL 프로그램 중단 (0) | 2023.07.04 |
R에서 데이터 프레임에 행을 추가하는 방법은 무엇입니까? (0) | 2023.07.04 |