LINUX.ORG.RU

История изменений

Исправление Novator, (текущая версия) :

Зависит от того, переприсваиваешь значение, или второй раз вызываешь метод:

str1 = object.method()
str2 = str1

str1 = object.method()
str2 = object.method()

В первом случае на скорость и память не повлияет, так как в динамических языках сам объект (строка) не копируется, а копируется только ссылка.
Во втором случае тратится время на вызов и работу метода, плюс выделяется память под новый объект (новое значение строки).

Мой совет: не бойся простого переприсваивания, но бойся ненужных многократных вызовов методов.

P.S. Если инициализируешь константами (NULL, цифрами и т.п.), то тоже быстро происходит.

Исходная версия Novator, :

Зависит от того, переприсваиваешь значение, или второй раз вызываешь метод:

str1 = object.method()
str2 = str

str1 = object.method()
str2 = object.method()

В первом случае на скорость и память не повлияет, так как в динамических языках сам объект (строка) не копируется, а копируется только ссылка.
Во втором случае тратится время на вызов и работу метода, плюс выделяется память под новый объект (новое значение строки).

Мой совет: не бойся простого переприсваивания, но бойся ненужных многократных вызовов методов.