gpt4 book ai didi

ruby-on-rails - 在方法末尾返回 nil 或 bool 值是否比让 Ruby 返回最后一行代码的结果更高效?

转载 作者:数据小太阳 更新时间:2023-10-29 08:02:29 25 4
gpt4 key购买 nike

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

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

如果您只是在最后一行添加一个“nil”或“boolean”而不是在我们不使用那个返回值时返回那个沉重的对象,它会更高效(或者以某种方式消耗更少的资源)吗?

def test_method
some_big_object
end

对比

def test_method
some_big_object
nil # or true/false
end

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

第二个选项看起来实际上稍微差一点,因为它现在创建了一个额外的对象。

我觉得添加额外的返回行,尤其是当返回行不是 nil 时,是多余和浪费的。 Ruby 甚至 JRUBY 的垃圾收集肯定比这更聪明吗?

我确实意识到返回 nil 可能有一些好处,以防止其他开发人员尝试使用此方法返回一个值,而该值只是为了工作。但纯粹说到性能,我说得对吗?

最佳答案

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

关于ruby-on-rails - 在方法末尾返回 nil 或 bool 值是否比让 Ruby 返回最后一行代码的结果更高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49563958/

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