array.last [x]发生了什么?

时间:2014-04-28 14:41:15

标签: ruby arrays

我遇到了这个:

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

有人可以解释发生了什么以及为什么?

2 个答案:

答案 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.