Я хочу избежать переоценки значения в вызове метода. До сих пор я делал это:
def some_method
@some_method ||= begin
# lot of code
end
end
Но это заканчивается довольно уродливо. В некотором коде я увидел что-то вроде следующего:
def some_method
@some_method ||= some_method!
end
private
def some_method!
# lot of code
end
Мне не нравится бит (!
) в конце, поэтому я придумал следующее:
def some_method
@some_method ||= _some_method
end
private
def _some_method
# lot of code
end
- Является ли добавление с подчеркиванием хорошим соглашением?
- Есть ли другое соглашение для memoized/non-memoized пар методов?
- Есть ли какое-то соглашение для memoize многострочных методов?