片段是什么意思?

时间:2011-11-17 11:05:05

标签: ruby

我正在使用Ruby脚本语言。我这里有一个片段。只是想知道循环中发生了什么。这是我的代码

#!/usr/bin/ruby

presidents = ["Ford", "Carter", "Reagan", "Bush1", "Clinton", "Bush2"]

for ss in 0...presidents.length
  print ss, ": ", presidents[presidents.length - ss - 1], "\n";
end

我知道这是以相反的顺序打印数组,但我的目的是知道发生了什么

"presidents[presidents.length - ss - 1]"

请帮我理解这一点。我真的很困惑。

1 个答案:

答案 0 :(得分:6)

这意味着,无论谁编写这段代码,他仍然在学习Ruby :-p。这更加惯用,我希望不言自明:

presidents.reverse_each.with_index do |name, index|
  puts "#{index}: #{name}"
end

关于presidents[presidents.length - ss - 1]ss从0开始,因此length-0-1 = length-1 - > presidents的最后一个元素。在循环的最后一次迭代中,您有length - (length-1) -1 = 0,因此显示了presidents的第一个元素。简单的反面,没什么特别的。