반응형
Ruby에서 범위로 배열을 채우는 올바른 방법
저는 "to_a" 방법을 사용하여 범위가 동등한 배열로 변환되는 예를 제공하는 책을 검토하고 있습니다.
irb에서 코드를 실행하면 다음과 같은 경고가 표시됩니다.
warning: default `to_a' will be obsolete
to_a를 사용하는 올바른 대안은 무엇입니까?
어레이를 범위로 채울 수 있는 다른 방법이 있습니까?
스플랫을 사용하여 범위가 있는 배열을 만들 수 있습니다.
>> a=*(1..10)
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
사용.Kernel
Array
방법,
Array (1..10)
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
또는 to_a를 사용합니다.
(1..10).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
이것은 irb에서 나에게 효과가 있습니다.
irb> (1..4).to_a
=> [1, 2, 3, 4]
다음과 같은 것을 알 수 있습니다.
irb> 1..4.to_a
(irb):1: warning: default `to_a' will be obsolete
ArgumentError: bad value for range
from (irb):1
그래서 아마도 당신은 괄호를 놓치고 있는 것이 아닐까요?
(Ruby 1.8.6 패치 레벨 114를 실행하고 있습니다.)
당신이 하는 것처럼 들리네요.
0..10.to_a
경고는 범위 #to_a가 아니라 Fixnum#to_a입니다.대신 사용해 보십시오.
(0..10).to_a
확인:
a = [*(1..10), :top, *10.downto( 1 )]
다음과 같은 방법이 방법은 다음과 같습니다.
irb> [*1..10]
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
저는 더 큰 양에서 더 작은 양까지 사용하려고 노력했고 예상치 못한 결과를 얻었습니다.
irb(main):007:0> Array(1..5)
=> [1, 2, 3, 4, 5]
irb(main):008:0> Array(5..1)
=> []
이는 범위 구현 때문입니다.
그래서 저는 다음 옵션을 사용해야 했습니다.
(1..5).to_a.reverse
언급URL : https://stackoverflow.com/questions/191329/correct-way-to-populate-an-array-with-a-range-in-ruby
반응형
'programing' 카테고리의 다른 글
첫 번째 N 키 반환: dict에서 값 쌍 (0) | 2023.06.11 |
---|---|
노드가 없는 타이프스크립트 명령줄 컴파일제이에스 (0) | 2023.06.11 |
콜론을 사용하는 것과 유형을 선언하는 구문으로 사용하는 것의 차이점은 무엇입니까? (0) | 2023.06.11 |
시스템.IO.파일 잠금 만들기 (0) | 2023.06.11 |
MongoDB에서 하위 문서를 루트 수준으로 평평하게 만드는 방법은 무엇입니까? (0) | 2023.06.11 |