Помнит ли Ruby результаты того, что уже было оценено?Скажем, у меня есть:
s = "a b c d e"
Если бы я сделал:
s.split.join[2] + s.split.join[3] # => "cd"
Было бы более или менее эффективно вместо этого сделать:
x = s.split.join
x[2] + x[3] # => "cd"
Я думаю, чтоесли бы я не присвоил s.split.join
переменной, то каждый раз, когда я использую это значение, Ruby должен был бы оценить s.split.join
.Если s.split.join
вызывался много раз, это кажется более дорогостоящим, чем просто проверка значения одной переменной.