我正在使用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]"
请帮我理解这一点。我真的很困惑。
答案 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
的第一个元素。简单的反面,没什么特别的。