Этот вопрос в основном касается внутренних элементов Ruby, скорость может быть измерена простым эталоном.ruby memoization, efficiency
Каков наиболее эффективный способ запоминания возвращаемого значения в рубине?
Я всегда memoized значения с:
def method
@value ||= calculate_value
end
Но так как это технически расширяется:
@value = @value || calculate_value
Интересно об эффективности повторного выполнения той же уступки каждый раз.
Будет ли это лучше?
def method
@value ? @value : (@value = calculate_value)
end
Кроме того, это меняется в разных интерпретаторах? МРТ, Rubinius и т.д.
Если значение calculate_value дорогое и может возвращать значение false или nil, вы должны подумать над чем-то вроде 'defined? @стоимость ? @value: (@value = calculate_value) '. –
Интересный вопрос, тот, чей ответ я рад узнать. Не забудьте выбрать ответ, если таковые были полезны. –