gpt4 book ai didi

ruby - 为什么这个 Ruby for 循环会失败?

转载 作者:太空宇宙 更新时间:2023-11-03 17:21:16 26 4
gpt4 key购买 nike

好的,所以我只想用 Ruby 做这个 Java:

int [] nums = { 2,4,6,8,10 };
for ( int i = 0; i < nums.length; i++ ){
nums[i]=nums[i]+100;
}

我这样做:

nums = Array[2,4,6,8,10];
hello = nums.length;
for i in 0..hello
# puts i
nums[i]=nums[i] + 100
end

代码失败:

qq.rb:5:in `block in <main>': undefined method `+' for nil:NilClass (NoMethodError)
from qq.rb:3:in `each'
from qq.rb:3:in `<main>'

为什么?

在此先感谢您的帮助。

最佳答案

你正在循环越过数组的末尾。

..包容性0..3 生成数字 0, 1, 2, 3

你想要 ... 不包括范围内的最后一个值。 0...3 生成 0, 1, 2

也就是说,您真正想要的是一些惯用的 Ruby:

nums = [2,4,6,8,10]
nums.map! { |x| x + 100 } # => [102, 104, 106, 108, 110]

关于ruby - 为什么这个 Ruby for 循环会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com