为什么这个Ruby for循环失败了?
好的,我只想在Ruby中使用Java:为什么这个Ruby for循环失败了?,ruby,loops,for-loop,Ruby,Loops,For Loop,好的,我只想在Ruby中使用Java: int [] nums = { 2,4,6,8,10 }; for ( int i = 0; i < nums.length; i++ ){ nums[i]=nums[i]+100; } 代码失败,原因是: qq.rb:5:in `block in <main>': undefined method `+' for nil:NilClass (NoMethodError) from qq.rb:3:in `eac
int [] nums = { 2,4,6,8,10 };
for ( int i = 0; i < nums.length; i++ ){
nums[i]=nums[i]+100;
}
代码失败,原因是:
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>'
qq.rb:5:in'block-in':nil:NilClass(NoMethodError)的未定义方法“+”
来自qq.rb:3:in'each'
来自qq.rb:3:in`'
为什么?
提前感谢你的帮助 您正在循环通过数组的末尾
。
包含在内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]
您正在循环通过阵列的末端
。
包含在内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应该是
(2..10)。第(2)步。map&100.method(:+)
@mudasobwa Err,不。你让代码更长,更复杂,可读性也差得多,这是为了把尽可能多的ruby方法塞进一行。这不是你编写惯用代码的方式。使用原始参数来证明任何事情总是很困难的,但是用谎言来证明是不可能的。我的代码短了10个符号,请在两个代码段上尝试String#length
。除此之外,它只是在你看来“更复杂,更不可读”,这基本上不是(也从来不是)神圣的真理。像step
这样的方法用于避免数字列表中的打字错误<代码>地图在地图上选择代码>因为没有理由改变一个对象(改变它的代码是误导性的,因此是不好的)。使用Symbol#to_proc
是网络中任何源代码中第一个惯用ruby的例子。@sagarpandya82可读性很重要,但这里我们讨论的是“惯用ruby”,我只是指出“我喜欢这种方式”“这是一个惯用的红宝石”不是同义词。是的,只要你每天编写ruby代码,&100。方法(:+)
比{x | x+100}
可读性更强(至少不差)。除非你还在使用ruby语法编写PHP。非常感谢。我知道这是一个简单的问题。是的,我忽略了最终的值。惯用的ruby应该是(2..10)。第(2)步。map&100.method(:+)
@mudasobwa Err,不。你让代码更长,更复杂,可读性也差得多,这是为了把尽可能多的ruby方法塞进一行。这不是你编写惯用代码的方式。使用原始参数来证明任何事情总是很困难的,但是用谎言来证明是不可能的。我的代码短了10个符号,请在两个代码段上尝试String#length
。除此之外,它只是在你看来“更复杂,更不可读”,这基本上不是(也从来不是)神圣的真理。像step
这样的方法用于避免数字列表中的打字错误<代码>地图
在地图上选择代码>因为没有理由改变一个对象(改变它的代码是误导性的,因此是不好的)。使用Symbol#to_proc
是网络中任何源代码中第一个惯用ruby的例子。@sagarpandya82可读性很重要,但这里我们讨论的是“惯用ruby”,我只是指出“我喜欢这种方式”“这是一个惯用的红宝石”不是同义词。是的,只要你每天编写ruby代码,&100。方法(:+)
比{x | x+100}
可读性更强(至少不差)。除非您仍然使用ruby语法编写PHP。