반응형
특정 키가 해시에 있는지 확인하는 방법은 무엇입니까?
세션 해시에 "사용자"키가 있는지 확인하고 싶습니다. 어떻게 할 수 있습니까?
키의 값이 nil인지 아닌지 확인하고 싶지 않습니다. "사용자" 키 가 있는지 확인하고 싶습니다 .
Hash
의 key?
메서드는 주어진 키가 있는지 여부를 알려줍니다.
session.key?("user")
Hash#has_key?
작업이 완료 되는 동안 Matz가 여기 에서 언급했듯이 Hash#key?
.
hash.key?(some_key)
최신 Ruby 버전에서 Hash 인스턴스에는 다음과 같은 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? 기호를 사용하여 키를 검색합니다.
Rails를 사용 Hash#with_indifferent_access
하는 경우 이를 방지하기 위해를 사용할 수 있습니다 . 모두 hash[:my_key]
와 hash["my_key"]
동일한 레코드를 가리 킵니다
Hash#key?
키가 해시에 있는지 여부를 항상 확인 하는 데 사용할 수 있습니다 .
그렇지 않으면 당신을 반환합니다 false
hash = { one: 1, two:2 }
hash.key?(:one)
#=> true
hash.key?(:four)
#=> false
또 다른 방법이 있습니다
hash = {one: 1, two: 2}
hash.member?(:one)
#=> true
hash.member?(:five)
#=> false
반응형
'Programing' 카테고리의 다른 글
Scala에서 객체와 클래스의 차이점 (0) | 2020.10.03 |
---|---|
모든 Unix 그룹 이름을 나열하는 명령이 있습니까? (0) | 2020.10.03 |
Java에서 목록을 집합으로 변환하는 가장 쉬운 방법 (0) | 2020.10.03 |
Android에서 전역 변수를 선언하는 방법은 무엇입니까? (0) | 2020.10.03 |
Rails 마이그레이션을 사용하여 열을 삭제하는 방법 (0) | 2020.10.03 |