我遇到了这个:
a = [1, 2, 3, 4, 5, 6, 7]
a.last # => 7
a.last[-1] # => 0
a.last[0] # => 1
a.last[1] # => 1
a.last[100] # => 0
有人可以解释发生了什么以及为什么?
答案 0 :(得分:2)
Array#last
返回最后一个元素,即7
。添加[]
只需调用Fixnum#[]
,返回数字的第n位:
7[0] # => 1
7[1] # => 1
7[2] # => 1
7[3] # => 0
# ...
7[100] # => 0
7.to_s(2) #=> "111"
答案 1 :(得分:1)
您正在使用Fixnum上的运算符[]
获取数字的第n位。因此,您首先获取数组中的最后一个值,然后列出其位。负索引位始终为0.