Если вы собираетесь перебирать много записей, использование интерполированной строки будет более эффективным с точки зрения памяти.
def complete_name
"#{firstname}, #{lastname}"
end
Использование String#+
для объединения строк создает объекты String на каждом шаге. Другими словами, если firstname
равно 'John'
и lastname
равно 'Doe'
, то каждая из этих строк будет существовать в памяти и в какой-то момент ее необходимо будет собрать в мусор: 'John'
, 'Doe'
, 'John, '
и, наконец, 'John, Doe'
. Не говоря уже о том, что есть три вызова метода вместо одной строковой интерполяции, которая более эффективно реализована в C.
Если вы используете нотацию #{}
, тогда вы избегаете создания строки 'John, '
. Не имеет значения при работе с одной или двумя записями, но в больших наборах данных, используемых во всех видах методов, он может быстро сложиться.