values = []
values << [ '1', 'one']
values << [ '2', 'two']
values << [ '3', 'three']
one = '1'
puts values[one]
위의 줄은 예외를 throw합니다.해시 테이블에서 특정 값을 가져 오는 방법
values = []
values << [ '1', 'one']
values << [ '2', 'two']
values << [ '3', 'three']
one = '1'
puts values[one]
위의 줄은 예외를 throw합니다.해시 테이블에서 특정 값을 가져 오는 방법
배열을 정의 했으므로 해시를 원합니다.
values = {}
values['1'] = 'one'
values['2'] = 'two'
values['3'] = 'three'
one = '1'
values[one] #=> 'one'
물론 당신이 작성해야한다 :
해시 테이블이 아니다values = {
'1' => 'one',
'2' => 'two',
'3' => 'three',
}
one = '1'
values[one] #=> 'one'
; 그것은 배열입니다. [['1', 'one'], ['2', 'two'], ['3', 'three']]
당신이 찾고 있던 코드는 다음과 같습니다 : 다른 사람처럼
values = {'1' => 'one', '2' => 'two'}
values['3'] = 'three'
one = '1'
puts values[one] # => 'one'
는 지적, 그 정말로 해시 테이블의 이상과 같은 2 차원 배열 values
은 가치가있다. 이런 식으로 값을 검색하는 것은 효과적이지 않지만. 접근은 이러한 구조에서 값
values.select { |entry| entry[0].eql? '1' }[0][1]
또한 #assoc을 사용하여 이러한 종류의 배열에서 값을 가져올 수 있습니다. 예 :'values.assoc (one) .last' –
당신은 해쉬 키 값 쌍의 어레이를 변환 할 수 있었다 얻었다 :
는values = []
values << [ '1', 'one']
values << [ '2', 'two']
values << [ '3', 'three']
hash = Hash[values]
hash['1'] # => "one"
이 at this ruby-doc.org page을 설명하는 Hash.[]
방법을 사용한다.
배열이 아니며 [this] (http://www.youtube.com/watch?v=01NHcTM5IA4)는 배열입니다. (youtube link)'values.class'를 사용하여'values'의 클래스를 얻을 수 있습니다. –
@Andrew Grimm : 배열이라고 확신합니다. 'values.class'조차 그렇게 말합니다. –
@undur_gongor : 네가 맞아, "해시 테이블이 아니고 해시 테이블"이라고 말했어 야했다. 해학적 인 말을하려고 할 때 나를 올바르게 응원합니다. –