Hash Rocket은 더 이상 사용되지 않습니까?


99

잘 인용 된 RIP Hash 로켓 게시물:foo => "bar"새로운 Ruby JSON 스타일 해시 ( foo: "bar")를 위해 Hash Rocket 구문 ( )이 더 이상 사용되지 않음 을 암시하는 것처럼 보이지만 Hash Rocket 형식을 나타내는 명확한 참조를 찾을 수 없습니다. 실제로 Ruby 1.9에서 더 이상 사용되지 않거나 개선되지 않았습니다.


나는 그 사람이 Rails와 함께 Ruby를 사용한다고 생각합니다.
Niklas B.

긴 로켓 살
HashRocketSyntax

로켓은 여전히 강력한 🚀 것입니다
mahemoff

답변:


132

이 블로그 게시물의 저자는 지나치게 극적이고 어리석은되고있는의는 =>것입니다 여전히 매우 필요합니다 . 특히:

  1. 인용이 필요한 기호에는 로켓을 사용해야합니다 . :'where.is' => x유효하지만 유효 'where.is': x하지 않습니다. Ruby 2.2에서이 문제를 해결 했으므로 'where.is': xRuby 2.2 이상으로 말할 수 있습니다 .
  2. 유효한 레이블이 아닌 기호에는 로켓을 사용해야합니다 . :$set => x유효하지만 유효 $set: x하지 않습니다. Ruby 2.2 이상에서는 따옴표로이 문제를 해결할 수 있습니다. '$set': xwill do The Right Thing.
  3. 해시에서 기호가 아닌 키를 사용하는 경우 로켓을 사용해야합니다. 's' => x유효하지만 's': x완전히 다른 것입니다.

당연히 명백한 방식으로 위의 내용을 훑어 볼 수 있습니다.

h = { }
h[:'where.is'] = 'pancakes house?'
# etc.

그러나 그것은 추하고 불필요합니다.

로켓은 Ruby 's Hashes를 손상시키지 않고는 아무데도 가지 않습니다.


6
s / 지나치게 극적이고 어리석은 / 극적이고 웅변적인 경의를 표하는 옹호 /. 나머지 포인트는 그대로 유지됩니다.
dbenhur

15
특정 시나리오에 대해 여전히 이전 구문에 의존해야 할 때 새 구문을 사용하는 것이 단순히 코드를 복잡하게 만드는지 궁금해야합니다.
Dave Rapin 2012

4
@DaveRapin : 그래서 내가 로켓이 아닌 구문에 신경 쓰지 않는 이유입니다. 저는 약간의 MongoDB 작업을 수행하고 종종 비 기호를 해시 키로 사용 h[:s]하므로 JavaScript 스타일 구문은 나에게 무의미한 복잡함을 의미합니다. 나에게 gee-whiz 아이디어를 잘못 생각한 것처럼 보이며 이제 우리는 그것과 관련된 혼란에 영원히 갇혀 있습니다.
mu가 너무 짧습니다.

8
@DaveRapin 고려 a = [0,1,4,9]a = Array.new(4){ |i| i**2 }. 가끔 후자를 사용해야 할 때 왜 전자를 사용합니까? 답변 : 더 편리하기 때문입니다. TIMTOWTDI는 언어를 복잡하게하지만 이것은 절충안입니다. Lua는 핵심이 정말 우아하고 배우기 쉽지만 실제로 코딩하는 것은 귀찮습니다. Ruby에는 배우기 어렵게 만드는 많은 특수 사례와 사용자 정의 기능이 있지만 프로그래밍하는 것은 즐겁습니다. 저는 환영합니다. 일반적인 경우에 대한 더 간단하고 읽기 쉬운 기호 키가있는 Hash-with-symbol-keys 표기법.
Phrogz

7
입력하는 것은 덜 재미 있지만 해시 로켓을 선호합니다. 왜? 이는 키에 기호를 사용할 때마다 콜론으로 시작하는 문자열을 검색하여 프로젝트의 어느 곳에서나 검색 할 수 있음을 의미하기 때문입니다. 나를 위해, 실제 문자 사이의 일관성의 부족에 키를 나타 내기 위해 사용 my_hash = {a:1}하고 myhash[:a] = 1최소한에, 오히려 성가신입니다. 이런 감정을 느끼는 사람은 나만은 아니다.
Huliax 2017-04-30
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.