理解Ruby代码的问题

时间:2015-06-04 07:17:54

标签: ruby

我有这段代码:

all_backups = dir.entries[2..-1].sort.reverse
max_backups = 20
unwanted_backups = all_backups[max_backups..-1] || []

我认为它会在定义的文件夹中获取所有条目。什么是[2..-1]?什么是all_backups[max_backups..-1] || []

1 个答案:

答案 0 :(得分:1)

dir.entries[2..-1]

从索引2(表示数组的第3个元素)到最后一个索引(数组的最后一个元素)获取元素。在Ruby中-1表示Array实例的最后一个元素。

all_backups[max_backups..-1] || []

all_backups[max_backups..-1]给出nil,然后使用空数组[]all_backups[max_backups..-1]中其他明智返回的数组赋值。