运行方法fizzbuzz1产生一个100个成员的数字1到100的列表,其中3的每个倍数被"fizz"替换,5个被"buzz"替换,3个和5的每个倍数被"fizzbuzz"替换:
def fizzbuzz1()
result = Array.new(100, "")
result.each_index do |index|
value = index + 1
result[index] += "fizz" if value % 3 == 0
result[index] += "buzz" if value % 5 == 0
result[index] = "#{value}" if result[index].size == 0
end
end
2.0.0-p195 :055 > fizzbuzz1
=> ["1", "2", "fizz", "4", "buzz", "fizz", "7", "8", "fizz", ...and so on.
Run Code Online (Sandbox Code Playgroud)
但每个开关+=
的<<
产量意想不到的事情:
def fizzbuzz2()
result = Array.new(100, "")
result.each_index do |index|
value = index + 1
result[index] << …
Run Code Online (Sandbox Code Playgroud)