我正在通过Ruby教程进行工作。问题之一提供了一个数组。然后,您必须:
“编写一个仅放置。的偶数的循环
my_array(如果使用单行,则奖励点if!)”
我的答案通过了测试,但显示语法错误,我的答案是下面的if语句。有人可以解释为什么我得到语法错误吗?
my_array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
if my_array.each do |x| % 2 == 0 puts X
Run Code Online (Sandbox Code Playgroud)
您缺少用于您的模数的end语句do和用于模数的左操作数。尝试这个:
my_array = (1..10).to_a
my_array.each { |x| puts x if x.even? }
Run Code Online (Sandbox Code Playgroud)
真的没有必要puts在每次迭代中调用。这样做完全没问题:
arr = *(1..10)
puts a.select(&:even?)
#=> [2, 4, 6, 8, 10]
Run Code Online (Sandbox Code Playgroud)
或者,如果您希望将结果连接为字符串:
arr = *(1..10)
puts a.select(&:even?).join(", ")
#=> 2, 4, 6, 8, 10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5834 次 |
| 最近记录: |