我可以覆盖`。`来指向数组的索引吗?
.
表示将.
解释为float而不是整数。
我可以覆盖.
让它将索引指向一个数组,以便以下内容有效吗?
c = [1, 2, 3, 4, 5, 6] c.0 # => 1 c.3 # => 4
不可以。方法名称不能以Ruby中的数字开头。 有关Ruby方法名称限制的更多信息。
不,你不能。 这是浮点数的字面表达式的一部分。 它不是方法调用。 它不是在Ruby语法级别完成的。
正如其他答案已经说明的那样,不可能将数字覆盖为方法,但您可以使用括号表示空方法。
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