如何以 rubysh 方式表达下一个 for 循环?
for (r = 1; r < R; r++) {
for (i = 0; i < 4; i++) {
#do something
}
}
我想用优雅的 ruby 语法来表达上面的代码。提前致谢。
如何以 rubysh 方式表达下一个 for 循环?
for (r = 1; r < R; r++) {
for (i = 0; i < 4; i++) {
#do something
}
}
我想用优雅的 ruby 语法来表达上面的代码。提前致谢。
默认情况下,我在 Ruby 中的写法是这样的:
for r in 1..(R-1) do
for i in 0..3 do
# Do something
end
end
但更好的方法是利用@PedroNascimento 在他的回答中指出的范围功能,使用三个点而不是两个点,以便将最后一项留在范围之外:
for r in 1...R do
for i in 0...4 do
# Do something
end
end
这既更好看,也更清楚地表达了代码的含义。
只是为了让事情更漂亮:范围也可以有三个点,不包括最后一个数字。因此,如果这样写,代码会表现得更紧密:
for r in 1...R do
for i in 0...4 do
# Do something
end
end
for r in 1..R-1
for i on 0..3
do something
end
end
在这里你可以找到更多关于 Ruby 的语法帮助。
只是另一个使用Range的答案。
r = 5 #
(1..r-1).each do|i|
(1..3).each do |j|
puts "i => #{i} , j => #{j}"
end
end
这个版本的灵感来自@Pedro Nascimento 的回答。
r = 5 #
(1...r).each do|i|
(1...3).each do |j|
puts "i => #{i} , j => #{j}"
end
end