English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
해시(Hash)는 "키" => "밸류"와 같은 키밸류 쌍 집합입니다. 해시는 배열과 유사하지만, 인덱스가 숫자로 제한되지 않습니다.
해시의 인덱스(또는 "키"라고도 합니다) 거의 어떤 객체든 될 수 있습니다.
Hash는 배열과 비슷하지만, Hash의 요소는 특정한 순서가 없습니다. 순서가 중요하다면 배열을 사용해야 합니다.
배열과 마찬가지로, 해시를 생성하는 방법은 여러 가지가 있습니다. 다음과 같이 생성할 수 있습니다: new 클래스 메서드로 빈 해시를 생성할 수 있습니다:
months = Hash.new
또한 new 기본 값을 가진 해시를 생성하면, 기본 값을 가지지 않는 해시는 nil:
months = Hash.new("month") 또는 months = Hash.new "month"
기본 값을 가진 해시의 어떤 키에도 접근할 때, 키나 값이 존재하지 않으면 해시 접근은 기본 값을 반환합니다:
#!/usr/bin/ruby months = Hash.new("month") puts "#{months[0]}" puts "#{months[72]"
위 예제의 실행 결과는 다음과 같습니다:
month month
#!/usr/bin/ruby H = Hash["a" => 100, "b" => 200] puts "#{H['a']}" puts "#{H['b']}"
위 예제의 실행 결과는 다음과 같습니다:
100 200
Ruby 객체를 키나 값으로 사용할 수 있습니다. 예를 들어, 다음과 같은 예제를 참조하세요:
[1, "jan"] => "January"
Hash 메서드를 호출하려면 먼저 Hash 객체를 인스턴스화해야 합니다. Hash 객체를 생성하는 방법의 예제는 다음과 같습니다:
Hash[[key =>|, value]* ] or Hash.new [or] Hash.new(obj) [or] Hash.new {|hash, key| block}
지정된 객체로 채워진 새로운 해시를 반환합니다. 이제 생성된 객체를 사용하여 어떤 메서드든 호출할 수 있습니다. 예를 들어:
#!/usr/bin/ruby $, = ", " months = Hash.new("month") months = "{"1" => "January", "2" => "February" keys = months.keys puts "#{keys}"
위 예제의 실행 결과는 다음과 같습니다:
"["1", "2"]
다음은 공용 해시 메서드입니다(고정된) 해시 Hash 객체입니다):
순번 | 메서드 & 설명 |
---|---|
1 | hash == other_hash 두 해시가 같은 키 값 쌍의 개수가 같은지, 키 값 쌍이 일치하는지 확인하여 두 해시가 같은지�断할 수 있습니다. |
2 | hash[key] 키를 사용하여 해시에서 값을 참조합니다. 키를 찾지 못하면 기본 값이 반환됩니다. |
3 | hash[key]=value 변환하여 value 지정된 값과 key 지정된 키에 연결됩니다. |
4 | hash.clear 해시에서 모든 키-값 쌍을 제거합니다。 |
5 | hash.default(key = nil) 반환 해시 에 존재하지 않으면 nil을 반환합니다。) 해시 hash.default(key = nil) |
6 | 의 기본 값을 설정하면 nil을 반환합니다。(키가 에 존재하지 않으면 []을 통해 기본 값을 반환합니다。) 해시 hash.default = obj |
7 | 을 설정하여 기본 값을 설정합니다。 hash.default_proc 해시 블록을 사용하여 생성된 경우 블록을 반환합니다。 |
8 | hash.delete(key) [또는] array.delete(key) { |key| block } 을 통해 key 부터 해시 에서 키-값 쌍을 제거합니다. 블록을 사용하고 일치하는 키-값 쌍을 찾지 못하면 블록의 결과를 반환합니다. 이를 delete_if 비교합니다。 |
9 | hash.delete_if { |key,value| block } block이 true 각 block에서 해시 에서 키-값 쌍을 제거합니다。 |
10 | hash.each { |key,value| block } 순회 해시각각 key block을 한 번 호출하고-value를 두 요소 배열로 사용합니다. |
11 | hash.each_key { |key| block } 순회 해시각각 key block을 한 번 호출하고 key 으로 매개변수로 사용합니다. |
12 | hash.each_key { |key_value_array| block } 순회 해시각각 key block을 한 번 호출하고 key 와 value 으로 매개변수로 사용합니다. |
13 | hash.each_value { |value| block } 순회 해시각각 key block을 한 번 호출하고 value 으로 매개변수로 사용합니다. |
14 | hash.empty? hash가 비어 있는지 확인합니다(키-값 쌍을 포함하지 않음),반환 true 또는 false。 |
15 | hash.fetch(key [, default] ) [또는] hash.fetch(key) { | key | block } 주어진 key 부터 해시 반환 값을 key이고 다른 매개변수를 제공하지 않으면 IndexError 에러를 반환합니다;default=을 통해 값을 제공하면 default이면 default선택적인 block이 지정되어 있으면 block의 결과를 반환합니다. |
16 | hash.has_key?(key) [또는] hash.include?(key) [또는] hash.key?(key) [또는] hash.member?(key) 주어진 key 해시에 존재하는지 확인하고 반환 true 또는 false。 |
17 | hash.has_value?(value) 해시가 주어진 값을 포함하고 있는지 확인 value。 |
18 | hash.index(value) 주어진 value 해시에서 key기본적으로 일치하는 값이 없으면 반환 nil。 |
19 | hash.indexes(keys) 주어진 키의 값을 포함하는 새로운 배열을 반환합니다. 찾을 수 없는 키는 기본 값으로 추가됩니다. 이 메서드는 더 이상 사용되지 않으며 select를 사용하십시오. |
20 | hash.indices(keys) 주어진 키의 값을 포함하는 새로운 배열을 반환합니다. 찾을 수 없는 키는 기본 값으로 추가됩니다. 이 메서드는 더 이상 사용되지 않으며 select를 사용하십시오. |
21 | hash.inspect 해시의 출력 문자열 버전을 반환합니다. |
22 | hash.invert 새로운 해시반대로 해시 의 keys 와 values따라서 새로운 해시에서,해시 의 키가 값이 되고, 값이 키가 됩니다. |
23 | hash.keys 새로운 배열을 생성합니다. 해시 의 키. |
24 | hash.length 정수 형식으로 반환 해시 의 크기나 길이. |
25 | hash.merge(other_hash) [or] hash.merge(other_hash) { |key, oldval, newval| block } 새로운 해시를 반환하고 있습니다. 해시 와 other_hash 의 내용을, hash에서 other_hash 중복된 키를 가진 키-값 쌍. |
26 | hash.merge!(other_hash) [or] hash.merge!(other_hash) { |key, oldval, newval| block } 와 동일하지만, 실제로 해시가 변경됩니다. |
27 | hash.rehash 각각의 key 의 현재 값을 다시 구축 해시만약 추가 후 값이 변경되면, 이 메서드는 재인덱싱을 수행합니다. 해시。 |
28 | hash.reject { |key, value| block } 와 동일하지만, 복사된 해시에 작용합니다. hsh.dup.delete_if와 동일합니다. |
29 | hash.reject! { |key, value| block } 와 동일하지만, 변경이 없으면 nil을 반환합니다. |
30 | hash.replace(other_hash) 변환하여 해시 의 내용을 other_hash 의 내용을 포함합니다. |
31 | hash.select { |key, value| block } 새로운 배열을 반환하며, block 반환 true 의 해시 의 키밸류对人体로 구성됩니다. |
32 | hash.shift 부터 해시 키밸류对人体 하나를 제거하고, 그 키밸류对人体를 두 요소 배열로 반환합니다. |
33 | hash.size 정수 형식으로 반환 해시 의 size 또는 length. |
34 | hash.sort 변환하여 해시 키밸류对人体 배열을 포함한 이차원 배열로 변환한 후 정렬합니다. |
35 | hash.store(key, value) 저장 해시 중 하나의 키밸류对人体. |
36 | hash.to_a 해시에서 이차원 배열을 생성합니다. 각 키밸류对人体가 배열로 변환되어 모든 이러한 배열이 배열에 저장됩니다. |
37 | hash.to_hash 반환 해시(self) |
38 | hash.to_s 변환하여 해시 배열을 변환한 후 문자열로 변환합니다. |
39 | hash.update(other_hash) [or] hash.update(other_hash) {|key, oldval, newval| block} 새로운 해시를 반환하고 있습니다. 해시 와 other_hash 의 내용을 다시 작성 해시 와 관련된 other_hash 중복된 키를 가진 키-값 쌍. |
40 | hash.value?(value) 검사 해시 지정된 값이 포함되어 있는지 확인 value。 |
41 | hash.values 새로운 배열을 반환하고 있으며, 포함하고 있습니다. 해시 의 모든 값. |
42 | hash.values_at(obj, ...) 새로운 배열을 반환하고 있으며, 포함하고 있습니다. 해시 지정된 키와 관련된 값. |