.<digit>
表示将数字解释为float而不是整数。
我是否可以覆盖.<digit>
让它将索引指向数组,以便以下内容有效?
c = [1, 2, 3, 4, 5, 6]
c.0 # => 1
c.3 # => 4
答案 0 :(得分:2)
没有。方法名称不能以Ruby中的数字开头。有关Ruby方法名称限制的更多信息here。
答案 1 :(得分:2)
不,你不能。这是浮点数的字面表达式的一部分。它不是方法调用。它不是在Ruby语法级别完成的。
答案 2 :(得分:0)
正如其他答案已经说明的那样,无法将数字覆盖为方法,但您可以使用括号作为空方法。
class Array
def method_missing(m ,*args, &block)
# m will be 'call'
self[args[0]] if args[0].is_a?(Fixnum)
end
end
irb(main):009:0> [1,2,3,4,5].(0)
=> 1
irb(main):010:0> [1,2,3,4,5].(2)
=> 3