Ситуация имеет значение, например:
# this will not work
output = ''
Users.all.each do |user|
output + "#{user.email}\n"
end
# the output will be ''
puts output
# this will do the job
output = ''
Users.all.each do |user|
output << "#{user.email}\n"
end
# will get the desired output
puts output
В первом примере конкатенация с оператором +
не будет обновлять объект output
, однако во втором примере оператор <<
будет обновлять объект output
с каждой итерацией. Таким образом, для ситуации вышеупомянутого типа, <<
лучше.