Ruby for 循环使用范围类而不是 fixnum


for i in [0..4] do
  puts i + 1
end

0..4:范围(无方法错误(的未定义方法"+">

为什么它不将范围中的每个数字视为循环中的固定数字?

[0..4]实际上是具有一个范围元素的数组,与[(0..4)]相同。您需要将其更改为 (0..4) .

改为写:

for i in 0..4 do
否则,您

没有范围,您有一个包含 1 范围的数组。

有不同的方法可以实现目标:

0.upto(4) { |i|
  puts i
}
0.step(4, 1) { |i|
  puts i
}
5.times { |i| # 5 for inclusive
  puts i
}
for i in 0..4
  puts i
end

一切都将输出:

# ⇒ 0
# ⇒ 1
# ⇒ 2
# ⇒ 3
# ⇒ 4

希望对您有所帮助。

最新更新