2
def [](index)
  case index
  when 0, -2: @x
  when 1, -1: @y
  when :x, "x": @x
  when :y, "y": @y
  else nil
  end
end


array.rb:3: syntax error, unexpected ':', expecting keyword_then or ',' or ';' or '\n'
  when 0, -2: @x
             ^
array.rb:5: syntax error, unexpected ':', expecting keyword_end
  when :x, "x": @x
               ^
array.rb:6: syntax error, unexpected ':', expecting keyword_end
  when :y, "y": @y
               ^
array.rb:8: warning: else without rescue is useless
array.rb:9: syntax error, unexpected keyword_end, expecting $end

私はこれを「Rubyプログラミング言語」という本からそのまま書いています。

私のルビーバージョンはルビー1.9.3p0です

誰かがこれを見たことがありますか?

4

2 に答える 2

5

通常のケースを使用することをお勧めします。

def [](index)   
  case index   
    when 0, -2 then @x   
    when 1, -1 then @y   
    when :x, "x" then @x   
    when :y, "y" then @y   
  end 
end 
于 2012-05-12T05:47:46.393 に答える
2

試す ";" または「:」の代わりに改行。

case index
  when 0, -2; @x

case index
  when 0, -2
    @x
于 2012-05-12T05:46:29.843 に答える