【发布时间】:2015-09-07 18:40:05
【问题描述】:
因此,如您所见,我并不精通 Ruby,因此如果您保持原始响应而不是使用捷径,这会有所帮助。
我能够在第一个示例中使我的 fizz-buzz 工作,我添加了绝对方法来处理负输入并使用变量来轻松适应将 3 和 5 更改为其他数字。但是,我无法将结果推送到数组中,我只会得到“1”。有谁知道我哪里出错了?
# not array - works
class Fixnum
define_method(:fizz_buzz) do
fizz = 3
buzz = 5
1.upto(self.abs) do |i|
if (i % fizz == 0) && (i % buzz == 0)
puts "fizz-buzz"
elsif (i % fizz == 0)
puts "fizz"
elsif (i % buzz == 0)
puts "buzz"
else
puts i
end
end
end
end
# push to array - doesn't work
class Fixnum
define_method(:fizz_buzz) do
fizz = 3
buzz = 5
array = []
1.upto(self.abs) do |i|
if (i % fizz == 0) && (i % buzz == 0)
array.push("fizz-buzz")
elsif (i % fizz == 0)
array.push("fizz")
elsif (i % buzz == 0)
array.push("buzz")
else
array.push(i)
end
end
end
end
=> 1
WW
【问题讨论】: