2013-07-29 3 views
0

저는 펄 배경에서 루비를 배우러 왔습니다. Ruby의 해시 구문에 대해 다소 혼란 스럽습니다.Ruby가 대체 해시 구문에 오류를 발생시키는 이유는 무엇입니까?

내가 http://www.ruby-doc.org/core-2.0/Hash.html

내 루비에 주어진 예를 참조하고는 위의 링크에 나와있는 다른 구문 구문 오류가 발생합니다.

이 코드는 잘 작동 : 반면

#!/usr/bin/ruby 
options = { :font_size => 10, :font_family => "Arial" } 
puts options[:font_size] 

,이 코드에 구문 오류가 발생합니다 :

#!/usr/bin/ruby 
options = { font_size: 10, font_family: "Arial" } 
puts options[:font_size] 

오류는 다음과 같습니다

/home/workspace/ruby/so.rb:3: odd number list for Hash 
options = { font_size: 10, font_family: "Arial" } 

그러나, 위에 붙여 링크는 말합니다를 그것이 효과가 있어야합니다.

내가 여기에없는 것을 안내해 주시겠습니까? 또는 나는 명백한 것을 간과 했는가? 구문은 루비 1.9에 도입 된

# ruby --version 
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux] 
+4

이 구문은 Ruby 1.9 이상에서만 작동합니다. 당신은 1.8을 사용하고 있습니다. – Blender

+0

@Blender, 나는 그것을 짐작하지만, 확인하는데 1.9를 가지지 않아야한다. 고마워, 나는 내 루비를 1.9로 업데이트 할 것이다. 감사. – slayedbylucifer

+1

1.9로 업그레이드 할 이유가 없습니다. 2.0은 1.9와 역 호환됩니다. 업그레이드하는 경우 2.0으로 업그레이드하십시오. – sawa

답변

2

그건 :

BTW, 여기 내가 사용하고있는 루비 버전입니다. 이전 버전을 사용 중입니다. Ruby 1.8을 더 이상 사용하지 않아야합니다. 이 페이지를보십시오 : http://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/.

+0

감사합니다. 내 우분투 10.04에서 기본 루비를 사용하고 있습니다. 나는 그것을 즉시 업데이트 할 것이다. – slayedbylucifer

+0

우분투도 오래되었습니다. 먼저 업그레이드해야합니다. – sawa

+0

참. 나도 알아,하지만 나는 GUI의 변경으로 우분투의 이후 버전을 모두 좋아하지 않기 때문에 10.04를 고수 할 것이다. – slayedbylucifer

4

이 구문은 Ruby 1.9 이상에서만 작동합니다.

참조하는 페이지의 제목에 "Ruby 2.0"이라고 표시되어 있습니다.

+0

잘 잡습니다. 나는 그것을 알아 차리지 못했다. 나는 루비 의사를 찾아서 그것을 참조하기 시작했다. 감사. – slayedbylucifer

관련 문제