好的,所以我只想在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 :(得分:6)
你循环遍历数组的末尾。
..
包含。 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]