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
我是按照《The Ruby Programming Language》一书中的原著写的。
我的ruby版本是ruby 1.9.3p0
有人见过这个吗?
最佳答案
我建议你使用常规的 case..when..then 形式
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
关于ruby - 定义自定义数组/哈希方法时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10561346/