gpt4 book ai didi

ruby - 方法调用中是否有内存约定?

转载 作者:数据小太阳 更新时间:2023-10-29 06:36:07 26 4
gpt4 key购买 nike

我想避免在方法调用中重新计算一个值。到目前为止,我一直在这样做:

def some_method
@some_method ||= begin
# lot's of code
end
end

但它最终变得非常丑陋。在一些代码中,我看到了如下内容:

def some_method
@some_method ||= some_method!
end

private

def some_method!
# lot's of code
end

我不喜欢最后的爆炸 (!),所以我想到了这个:

def some_method
@some_method ||= _some_method
end

private

def _some_method
# lot's of code
end
  • 在前面加上下划线是一个好的约定吗?
  • 对于记忆化/非记忆化方法对是否有其他约定?
  • 是否有一些约定来内存多行方法?

最佳答案

我会这样做:

def filesize
@filesize ||= calculate_filesize
end

private

def calculate_filesize
# ...
end

所以我只是以不同的方式命名该方法,因为我认为它更有意义。

关于ruby - 方法调用中是否有内存约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818437/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com