Latest web development tutorials

루비 해시 (해시)

해시 (해시) 키 - 값 쌍의 같은 컬렉션의 => "값"은 "키"와 유사하다. 해시 배열과 유사하지만,이 인덱스 번호의 사용에 한정되지 않는다.

해시 인덱스 (또는 "키")는 거의 모든 객체가 될 수 있습니다.

해시 배열과 유사하지만, 그러나 매우 중요한 차이점이있다 : 해시 요소가 특정의 순서이다. 순서가 중요 경우에, 당신은 배열을 사용해야합니다.

해시 만들기

배열처럼 다양한 방법은 해시를 생성한다. 당신은새로운클래스 메소드를 통해 빈 해시를 생성 할 수 있습니다 :

months = Hash.new

당신은 또한 사용할 수있는새로운해시가 기본 해시 값없이, 기본 값으로 작성된다전무하다 :

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

사용자는 키 또는 임의의 값으로 루비 객체를 사용하거나, 예를 나타낸 바와 같이, 어레이를 사용할 수있다 :

[1,"jan"] => "January"

내장 방법을 해시

당신이 해시 메서드를 호출해야하는 경우, 당신은 해시 개체를 인스턴스화해야합니다. 다음은 해시 객체의 인스턴스를 생성하는 방법은 다음과 같습니다

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"]

다음은 일반적인 해시 방법(해시해시 개체를 가정)입니다 :

아니오. 방법 및 설명
(1) 해시 == other_hash
두 키 - 값 쌍들의 수가 두 해시 값이 같은지 여부를 결정하기 위해 서로 일치 대해 동일한 해시 키 값이 있는지 여부를 확인한다.
해시. [키]
해시에서 키 참조 값을 사용합니다. 키가 발견되지 않은 경우, 디폴트 값으로 반환한다.
3 해시. [키] 값을 =
값은주어진 키와 관련된키의값을 지정.
4 hash.clear
해시에서 모든 키를 제거합니다.
(5) hash.default (키 = 전무)
기본적으로 설정되어 있지 않은 경우 =전무를반환해시의기본 값을 돌려줍니다. (키해시에존재하지 않는경우,[] 디폴트 값을 반환한다.)
6 hash.default = OBJ
해시에대한 기본 값을설정합니다.
(7) hash.default_proc
해시가블록으로 만든 경우, 블록이 돌아왔다.
8 hash.delete (키) [또는]
array.delete (키) {| 키 | 블록}
쌍에 의해해시 키에서제거합니다. 이 블록 및 매칭 키 - 값 쌍을 발견하지 않은 경우, 블록의 결과를 반환한다.delete_if와 비교.
9 hash.delete_if {| 키, 값 | 블록 }
블록의 각 블록은,해시의키를 삭제 것이사실이다.
(10) hash.each {| 키, 값 | 블록 }
블록에 대해 한 번씩 호출해시,트래버스, 2 요소의 배열과 키 - 값을 전달합니다.
(11) hash.each_key {| 키 | 블록}
블록에 대해 한 번씩 호출해시,트래버스, 매개 변수로전달합니다.
(12) hash.each_key {| key_value_array | 블록}
블록에 대해 한 번씩 호출해시,트래버스, 인수로키와값을 전달합니다.
(13) hash.each_value {| 값 | 블록}
블록에 대해 한 번씩 호출해시,트래버스, 매개 변수값으로 전달.
(14) hash.empty?
해시 (키 - 값 쌍을 포함하지 않는) 비어,true또는false를반환 여부를확인합니다.
(15) hash.fetch (키 [기본]) [또는]
hash.fetch (키) {| 키 | 블록}
주어진키를통해해시의반환값.키를 찾을수없는,추가 매개 변수를 제공하지 않은 경우,IndexError 예외를기본적 주어진다면,기본을반환 옵션 블록, 블록 결과가 반환되는 경우.
(16) hash.has_key? (키) [또는] hash.include? (키) [또는]
hash.key? (키) [또는] hash.member? (키)
지정된키가해시에있는 경우,true또는false를반환확인합니다.
(17) hash.has_value? (값)
해시가 주어진값이들어 있는지여부를 확인합니다.
(18) hash.index (값)
해시키의주어진값에대한반환,일치하는 항목이없는 경우은nil을 반환.
(19) hash.indexes (키)
그것은 주어진 주요 구성 요소의 값에 의해 새로운 배열을 반환합니다. 기본 값을 삽입 할 수있는 키를 찾을 수 없습니다. 이 방법은 사용되지 않습니다, 선택을 사용하십시오.
(20) hash.indices (키)
그것은 주어진 주요 구성 요소의 값에 의해 새로운 배열을 반환합니다. 기본 값을 삽입 할 수있는 키를 찾을 수 없습니다. 이 방법은 사용되지 않습니다, 선택을 사용하십시오.
(21) hash.inspect
다시 인쇄 버전 문자열의 해시.
(22) hash.invert
키와값의 새로운해시,해시 반전을만듭니다.다시 말해서, 새로운해시,해시 값을 키가되고, 값이 키가 될 것이다.
(23) hash.keys
해시키를 사용하여 새 배열을 만듭니다. / TD>
(24) hash.length
그것은 정수해시크기 나 길이를 반환합니다.
(25) (other_hash) hash.merge [나]
hash.merge (other_hash) {| 키 인 oldval, 된 newval | 블록}
새로운 해시를 돌려줍니다해시콘텐츠를 포함하고 중복 키 쌍other_hash와키 해시를 다시 작성other_hash.
(26) ! hash.merge (other_hash) [또는]
hash.merge (other_hash)! {| 키 , 인 oldval, 된 newval | 블록}
그리고 같은 병합, 실제로 해시가 변경되었습니다.
(27) hash.rehash
키의현재 값에 기초하여해시를확립한다.만약 값이 변경 삽입하면, 처리는해시를다시인덱싱한다.
(28) hash.reject {| 키, 값 | 블록 }
으로 새로운해시를생성하는 각 키블록의사실이다.
(29) hash.reject! {| 키, 값 | 블록}
그리고 같은를거부하지만,실제로 해시가 변경되었습니다.
(30) hash.replace (other_hash)
콘텐츠other_hash의해시의 내용을교체합니다.
(31) hash.select {| 키, 값 | 블록 }
새로운 배열을 돌려,블록은진정한해시 키 값을 반환합니다.
(32) hash.shift
키 쌍에해시에서제거하고, 2 요소의 배열로 반환 된 키 값을 전송합니다.
(33) hash.size
그것은크기나 길이의 정수해시를반환합니다.
(34) hash.sort
해시 키값의 배열을 포함하는 2 차원 배열로 변환하고 정렬한다.
(35) hash.store (키, 값)
키 - 값 쌍에 저장된해시.
(36) hash.to_a
해시에서 2 차원 배열을 만듭니다. 배열로 각각의 키 - 값 쌍은, 모든 배열은 배열에 저장됩니다.
(37) hash.to_hash
반환해시 (자체).
(38) hash.to_s
해시는다음 배열 문자열로 변환되는 배열로 변환된다.
(39) hash.update (other_hash) [또는]
hash.update (other_hash) {| 키 인 oldval, 된 newval | 블록}
새로운 해시를 돌려줍니다해시콘텐츠를 포함하고 중복 키 쌍other_hash와해시를다시 작성other_hash.
(40) hash.value? (값)
해시가주어진값이들어 있는지여부를 확인합니다.
(41) hash.values
그것은해시의모든 값을 포함하는 새로운 배열을반환합니다.
(42) hash.values_at (OBJ, ...)
이는 주어진 키와 관련된해시값을 포함하는 새로운 배열을 반환한다.