programing

해시에 특정 키가 있는지 확인하는 방법은 무엇입니까?

i4 2023. 5. 31. 15:16
반응형

해시에 특정 키가 있는지 확인하는 방법은 무엇입니까?

세션 해시에 "사용자" 키가 있는지 확인하고 싶습니다.어떻게 해야 하나요?

키 값이 0인지 확인하고 싶지 않습니다."사용자" 가 있는지 확인하고 싶습니다.

Hashkey?메소드는 지정된 키가 있는지 여부를 알려줍니다.

session.key?("user")

하는 동안에Hash#has_key?Matz가 여기서 언급했듯이, 작업을 수행하는 것은 다음을 위해 권장되지 않습니다.Hash#key?.

hash.key?(some_key)

해시 인스턴스에 메서드가 있습니다.

{a: 1}.key?(:a)
=> true

해시에 포함된 내용에 따라 기호 키 또는 문자열 키를 사용해야 합니다.

{'a' => 2}.key?(:a)
=> false

매우 늦었지만 기호를 키로 사용하는 것이 좋습니다.

my_hash = {}
my_hash[:my_key] = 'value'

my_hash.has_key?("my_key")
 => false 
my_hash.has_key?("my_key".to_sym)
 => true 

my_hash2 = {}
my_hash2['my_key'] = 'value'

my_hash2.has_key?("my_key")
 => true 
my_hash2.has_key?("my_key".to_sym)
 => false 

그러나 해시를 만들 때 문자열을 키로 전달하면 키에서 문자열을 검색합니다.

그러나 해시를 만들 때 기호를 키로 전달하면 has_key?는 기호를 사용하여 키를 검색합니다.


레일을 사용하는 경우에는Hash#with_indifferent_access이것을 피하기 위해; 둘 다.hash[:my_key]그리고.hash["my_key"]동일한 기록을 가리킬 것입니다.

다른 방법은 여기에 있습니다.

hash = {one: 1, two: 2}

hash.member?(:one)
#=> true

hash.member?(:five)
#=> false

언제든지 사용할 수 있습니다.Hash#key?키가 해시에 있는지 확인합니다.

그렇지 않으면 당신을 돌려줄 것입니다.false

hash =  { one: 1, two:2 }

hash.key?(:one)
#=> true

hash.key?(:four)
#=> false

Rails 5에서 has_key? 메서드는 해시에 키가 있는지 확인합니다.이를 사용하는 구문은 다음과 같습니다.

YourHash.has_key? :yourkey
h = {}
if h.respond_to?(:key?) && h.key?('text') #with respond_to method check if it's hash
   puts h['text'] 
end

언급URL : https://stackoverflow.com/questions/4528506/how-to-check-if-a-specific-key-is-present-in-a-hash-or-not

반응형