2013-01-10 2 views
0

새 루비 구문에서 키로 숫자가 포함 된 해시를 만드는 방법은 무엇입니까? 예를 {abc: 123}의 키와 기호 abc와 해시를 생성하지만 {123.to_sym: 'abc'}처럼 {123: 'abc' }는 (예외가 발생합니다. 내가 볼 예외가 syntax error, unexpected '}', expecting $end이다. 내가 hash[123] = 'abc' 또는 Hash[123, 200]을 할 수 있으며, 이전 구문에서 {123 => 'abc'}을 할 수 있지만하지 새로운 JSON 스타일의 구문에서 {123: 'abc'}를 만드는 방법을 참조하십시오.루비 1.9.x 구문의 키 숫자

+0

AFAIK. 새로운 구문은 특정 구문에 대한 구문 설탕이며, 기호와 숫자는 기호로 바뀌지 않습니다. –

+0

JavaScript 스타일 표기법은 [일부] (http://stackoverflow.com/a/8675314/479863) [기호] (http://stackoverflow.com/a/10004344/479863)로만 작동하며, 키가 맞지 않으면 기호가 아니거나 기호이지만 유효한 레이블이 아닌 경우 해시 록을 사용해야합니다. –

+0

가능한 복제본 : \\ : key => "value"\\와 \\ key : "value"\ hash hashations?] (http://stackoverflow.com/questions/8675206/is) 사이에 차이가 있습니까? key-value-and-key-value-hash-no) –

답변

1

을 할 수 있습니다 없습니다. 구문은 또한 유효 루비 식별자 Symbol의이 키입니다. 123Fixnum 아닌 Symbol이며, 심지어 경우 이고 Symbol인데, 여전히 유효한 Ruby 식별자가 아닙니다.

+0

버머이지만, Jörg에 대답 할 시간을내어 주셔서 감사합니다. 변환 할 수있는 간단한 방법이 있어야하는 것처럼 보입니다. 그러나 나는 그것을 알아낼 수 없습니다. 나는 다른 누군가가 다른 테이크를 가지고 있는지보기 위해 이것을 조금 열어 둘 예정이다. 그렇지 않다면 나는 대답 할 수 없기 때문에 당신에게 대답 해 줄 것입니다. –

0

123은 기호와 같이 고유하기 때문에 이미 123 기호라고 생각할 수 있습니다. 그래서 {123 : "abc"}

은 불가능합니다.