繁体   English   中英

在方法结束时返回nil或boolean比让Ruby返回最后一行代码的结果更高效吗?

[英]Is returning nil or a boolean at the end of a method more performant than letting Ruby return the result of the last line of code?

众所周知,在Ruby中,方法的最后一行是该方法的“返回”值。

假设你有一个程序(也就是我们只是希望它工作而不关心返回值的方法)构建一个繁重的对象,或者它的最后一行是一个Rails记录器语句或一些其他类实例。

如果你只是在最后一行添加“nil”或“boolean”而不是在我们不使用该返回值时返回那个重的对象,它是否更具性能(或以某种方式消耗更少的资源)?

def test_method
    some_big_object
end

VS

def test_method
    some_big_object
    nil # or true/false
end

在我看来,就纯对象分配而言,内存性能越高,第一种选择就越好。 仅仅因为该方法“返回”一个未使用的大对象,并不意味着它需要进一步处理或导致任何额外的内存膨胀。

第二种选择似乎实际上是因为它现在创建了一个额外的对象。

我想添加额外的返回线,特别是如果返回线不是零,则是多余的和浪费的。 当然Ruby,甚至是JRUBY,垃圾收集比这更聪明?

我确实意识到返回nil可能会有一些好处,以防止其他开发人员尝试使用此方法返回值时,只是为了工作。 但纯粹谈到表现,我是否正确?

任何方法都将返回一个对象,或者更具体:object_id,它只是一个数字。 Nil,false,some_big_object:只是一个数字。 不要打扰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM