我正在使用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
Run Code Online (Sandbox Code Playgroud)
我知道这是以相反的顺序打印数组,但我的目的是知道发生了什么
"presidents[presidents.length - ss - 1]"
Run Code Online (Sandbox Code Playgroud)
请帮我理解这个.我真的很困惑.
这意味着,无论谁编写这段代码,他仍然在学习Ruby :-p.这更加惯用,我希望,不言自明:
presidents.reverse_each.with_index do |name, index|
puts "#{index}: #{name}"
end
Run Code Online (Sandbox Code Playgroud)
关于presidents[presidents.length - ss - 1]:ss从0开始,所以length-0-1 = length-1- >最后一个元素presidents.在循环的最后一次迭代中length - (length-1) -1 = 0,所以显示了第一个元素presidents.简单的反面,没什么特别的.
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |