2014-10-03 5 views
0

숫자와 함께 새로운 해시 스타일을 키로 사용하려면 어떻게해야합니까?새 해시 스타일을 숫자와 함께 사용하려면 어떻게해야합니까?

{ 1 => "terrible", 3=> "OK", 5 => "awesome" } 

하지만 새로운 해시 스타일을 사용하여 작성하는 방법을 알고 싶습니다 :

나는 있습니다.

+3

수 없습니다. 숫자 키에는 "새로운 해시 구문"같은 것이 없습니다. Ruby는 기호를 키로 사용하기 위해 명시 적으로 새로운 구문을 도입했습니다. 어떤 양의 독서라도 당신에게이 대답을 주었어야합니다. – meagar

+0

@meagar : * 특정 * 기호는 JavaScript 스타일 표기법을': $ set',': '0 ''과 같은 기호와 함께 사용할 수 없습니다. –

+0

예, 이것은 심볼 인 키에 대해 예약되어 있지만이 기능의 설계자가보다 일반적인 것으로 만들 수 있습니까? 'key : value'가'{key => value}'로 해석되었다고 가정 해보자. Object => true','{: key => value}''key.is_a? 개체 '가 "정의되지 않은 로컬 변수 또는 메서드"예외를 발생시킵니다. ('key.is_a? Object => false'는 어떨까요?). 옹호하지 말고, 그냥 궁리하다. –

답변

1

키는 숫자가 아니며 기호입니다. {key: value}의 새로운 해시 스타일을 사용하면 키는 항상 기호로 간주되므로 키가 기호가 아닌 숫자로 시작되므로 해시에 새 해시 스타일을 사용할 수 없습니다. 자세한 내용은 ""는 명시 적으로 언급 여기서 버전 1.9 루비에서

키 상징 해시 리터럴에 대한 새로운 구문을 소개했다.

+1

기술적으로 기호 *는 숫자로 시작할 수 있습니다. ': "123"'과''123 ".to_sym' 두 숫자만으로 구성된 심볼을 생성합니다. – meagar

+0

a = : 1과 같은 오류가 발생합니다. 설명하는 것은 숫자가 아닌 문자열 데이터 유형입니다. – daremkd

+0

"이 링크"를 말하는 대신 앵커 텍스트를 설명하는 텍스트를 사용하십시오. W3의 "[링크 텍스트] (http://www.w3.org/TR/WCAG10-HTML-TECHS/#link-text)"및 "[여기를 클릭하십시오"링크 텍스트로 사용하지 마십시오] (http://www.w3.org/QA/Tips/noClickHere) " –

1

새 구문을 사용하려면 유효한 기호의 하위 집합을 사용해야합니다. 숫자는 그렇지 않으며, Mu가 지적한 것처럼 다른 제한도 있습니다.

+0

잘못되었습니다. ': $ set'과': @ pancakes'는 유효한 심볼이지만'$ set : ...'또는'@pancakes : ... '라고 말할 수는 없습니다. –

+0

@muistooshort 네, 좋은 지적입니다. –

관련 문제