반응형
Ruby에서 범위로 배열을 채우는 올바른 방법
"to_a"메소드를 사용하여 Ranges를 동등한 배열로 변환하는 예제를 제공하는 책을 연구하고 있습니다.
irb에서 코드를 실행하면 다음 경고가 표시됩니다.
warning: default `to_a' will be obsolete
to_a를 사용하는 올바른 대안은 무엇입니까?
배열을 Range로 채우는 다른 방법이 있습니까?
splat을 사용하여 범위가있는 배열을 만들 수 있습니다.
>> 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 patchlevel 114를 사용하고있다)
이렇게하는 것처럼 들립니다.
0..10.to_a
경고는 Range # to_a가 아닌 Fixnum # to_a에서 발생합니다. 대신 이것을 시도하십시오 :
(0..10).to_a
이것을 확인하십시오 :
a = [*(1..10), :top, *10.downto( 1 )]
방금 더 큰 양에서 작은 양으로 범위를 사용하려고했지만 예상하지 못한 결과를 얻었습니다.
irb(main):007:0> Array(1..5)
=> [1, 2, 3, 4, 5]
irb(main):008:0> Array(5..1)
=> []
그것은 범위 구현 때문입니다.
따라서 다음 옵션을 사용해야했습니다.
(1..5).to_a.reverse
이것은 다른 방법입니다.
irb> [* 1..10]
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
참고 URL : https://stackoverflow.com/questions/191329/correct-way-to-populate-an-array-with-a-range-in-ruby
반응형
'development' 카테고리의 다른 글
| div 내에서 버튼을 중앙에 배치하는 방법 (0) | 2020.05.15 |
|---|---|
| 하단의 WPF 데이터 그리드 빈 행 (0) | 2020.05.15 |
| nohup 프로세스를 종료하기 위해 프로세스 ID를 얻는 방법은 무엇입니까? (0) | 2020.05.15 |
| Windows에서 Python simpleHTTPserver 설정 (0) | 2020.05.15 |
| Google Play 서비스 라이브러리 업데이트 및 누락 된 기호 @ integer / google_play_services_version (0) | 2020.05.15 |