小编pol*_*tti的帖子

Ruby字符串 - <<和+ =之间的区别

运行方法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)

ruby string append add fizzbuzz

3
推荐指数
1
解决办法
161
查看次数

标签 统计

add ×1

append ×1

fizzbuzz ×1

ruby ×1

string ×1