IT story

키에 대시가있는 Ruby 1.9 해시

hot-time 2021. 1. 6. 20:26
반응형

키에 대시가있는 Ruby 1.9 해시


루비 1.9에서 새로운 구문으로이 해시를 정의하는 방법이 있습니까?

irb> { a:  2 }
=> {:a=>2}

irb> { a-b:  2 }
SyntaxError: (irb):5: syntax error, unexpected tLABEL
{ a-b:  2 }
      ^

이전 버전에서는 작동합니다.

irb> { :"a-b" =>  2 }
=> {:"a-b"=>2}

다음 구문을 사용할 수도 있습니다.

{a: 1, b: 2, 'c-c': 3, d: 4}

새 구문에서 사용할 수없는 합법적 인 기호가 있습니다. 참조를 찾을 수 없지만 /^[a-zA-Z_][a-zA-Z_0-9]*[!?]?$/새 구문과 일치하는 기호 이름 이 허용되는 것 같습니다. 마지막 문자는 특수 문자 "!"일 수 있습니다. 또는 "?".

이러한 제한 사항을 충족하지 않는 기호의 경우 Ruby 1.8 구문을 사용해야합니다. :'my-symbol-name'


새 구문에 대시를 사용하려면 :

<%= link_to "Link", link_path, {data: {something: 'value1', somethingelse: 'value2'}} %>

그러면 다음이 생성됩니다.

<a href="/link" data-something='value1' data-somethingelse='value2'>Link</a>

이것은 귀하의 특정 사용 사례가 아닐 수도 있지만 직접 답변을 찾으려고 노력 하면서이 게시물을 찾았으므로 결과를 공유 할 것이라고 생각했습니다.


이전 구문과 새 구문을 결합 할 수 있습니다.

{a: 1, b: 2, :'c-c' => 3, d: 4}

참조 URL : https://stackoverflow.com/questions/2134702/ruby-1-9-hash-with-a-dash-in-a-key

반응형