":key => "value"와 "key:value" 해시 표기법 사이에 차이점이 있습니까?
사이에 차이가 있습니까?:key => "value"
(로켓) 및key: "value"
(루비 1.9) 표기법?
그렇지 않다면, 저는 사용하고 싶습니다.key: "value"
표기법내가 변환하는 데 도움이 되는 보석이 있습니까?:x =>
로.x:
표기법?
네, 차이가 있습니다.다음은 합법적입니다.
h = { :$in => array }
h = { :'a.b' => 'c' }
h[:s] = 42
하지만 다음은 아닙니다.
h = { $in: array }
h = { 'a.b': 'c' } # but this is okay in Ruby2.2+
h[s:] = 42
또한 모든 것을 키로 사용할 수 있습니다.=>
이렇게 할 수 있습니다.
h = { C.new => 11 }
h = { 23 => 'pancakes house?' }
하지만 이렇게 할 수는 없습니다.
h = { C.new: 11 }
h = { 23: 'pancakes house?' }
JavaScript 스타일(key: value
)는 모든 해시 키가 "단순" 기호(거의 일치하지 않는 것)일 경우에만 유용합니다./\A[a-z_]\w*\z/i
파서는 이러한 키에 대해 레이블 패턴을 사용합니다.
그:$in
스타일 기호는 MongoDB를 사용할 때 공정하게 표시되므로 MongoDB를 사용할 경우 해시 스타일을 혼합하게 됩니다.그리고, 만약 당신이 해시의 특정 키로 작업을 한다면,h[:k]
전체 해시보다 ()h = { ... }
), 기호에는 콜론 우선 스타일을 사용해야 하며 해시 외부에서 사용하는 기호에는 선행 콜론 스타일을 사용해야 합니다.저는 자바스크립트 스타일을 전혀 신경쓰지 않기 위해 일관성 있는 것을 선호합니다.
JavaScript 스타일의 문제 중 일부는 Ruby 2.2에서 해결되었습니다.올바른 레이블이 아닌 기호가 있는 경우 따옴표를 사용할 수 있습니다. 예:
h = { 'where is': 'pancakes house?', '$set': { a: 11 } }
그러나 키가 기호가 아닌 경우에도 해시 로켓이 필요합니다.
key: "value"
Ruby 1.9의 편리한 기능입니다. 사용자의 환경이 이 기능을 지원할 것이라는 것을 알고 있는 한 사용하지 않을 이유가 없습니다.대장을 입력하는 것이 로켓보다 훨씬 쉽고, 훨씬 깨끗해 보인다고 생각합니다.변환을 할 보석이 있다는 것에 대해서는, 아마도 그렇지 않을 것입니다. 하지만 파일 조작과 정규 표현을 아직 모른다면, 그것은 당신에게 이상적인 학습 경험인 것 같습니다.
해시-로켓에 의해 할당된 루비 해시 키는 키-값 쌍을 위한 문자열을 용이하게 할 수 있습니다(예:'s' => x
기호를 통한 키 할당(예: key: "value"
또는:key => "value"
문자열로 할당할 수 없습니다.해시-로켓은 특히 문자열을 키로 허용하는 해시 테이블에 대한 자유와 기능을 제공하지만, 해시 테이블이 해시 키로 기호를 사용하여 구성되는 경우보다 응용 프로그램 성능이 느릴 수 있습니다.다음 리소스는 해시 로켓과 기호의 차이를 명확히 할 수 있습니다.
그key: value
JSON 1구문의 이므로 이 의 RubyJSON과 . JSON은 Ruby 1.9와 호환되지 않습니다.또한, 열쇠는 상징이 될 것입니다.만약 당신이 이 두 가지 제약 조건을 가지고 살 수 있다면, 새로운 해시는 오래된 해시와 똑같이 작동합니다. 그것들을 변환할 이유는 (아마도 스타일 외에는) 없습니다.
하고있다:key => value
▁doing같을 하는 것과 같습니다.key: value
그리고 그것은 정말 단지 편의일 뿐입니다.나는 다른 언어를 사용하는 것을 본 적이 없습니다.=>
하지만 자바스크립트와 같은 다른 사람들은 그것을 사용합니다.key: value
해시 등가 데이터 유형으로 표시됩니다.
당신이 해시를 작성한 방식을 전환하는 보석에 대해서는 현재 프로젝트를 위해 당신이 하고 있는 방식을 고수하겠습니다.
를 사용할 는 **를 참조하십시오.key: value
가 될 이며, " " " " " " " " " " " " " " " " " " " " " 이 됩니다.foo
해는여전일 입니다.foo[:key]
.
언급URL : https://stackoverflow.com/questions/8675206/is-there-any-difference-between-the-key-value-and-key-value-hash-no
'programing' 카테고리의 다른 글
ggplot2에서 범례 항목 사이의 간격을 변경할 수 있는 방법이 있습니까? (0) | 2023.06.08 |
---|---|
Larvel 5.4 애플리케이션 내에서 Vuex 상태를 초기화하려면 어떻게 해야 합니까? (0) | 2023.06.08 |
논리적 조건을 기준으로 data.frame 행 필터링 (0) | 2023.06.08 |
"+" (+ 기호) CSS 선택기는 무엇을 의미합니까? (0) | 2023.06.03 |
루비에서 파일에 쓰는 방법은? (0) | 2023.06.03 |