gpt4 book ai didi

Ruby 何时使用方法! vs 重新赋值

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

在使用 Ruby 工作时,我经常发现自己在使用带有 ! 的方法或使用普通方法作为返回值之间存在冲突。我不确定什么时候使用什么。例如,我有 2 个哈希值(h1 和 h2),我想合并它们并将值存储回哈希值 h1,现在我应该使用h1.merge!(h2)或者h1 = h1.merge(h2)?

这两者有什么区别吗?

最佳答案

大多数情况下,h1.merge!(h2)h1 = h1.merge(h2) 之间几乎没有区别。

但是,请注意:

由于 merge! 修改了旧的散列,您可能会无意中影响程序中持有对同一散列的引用的其他对象。修改作为方法参数收到的散列是不好的做法,因为调用者通常不希望它。

使用 merge! 不是函数式编程,如果你是它的粉丝的话。

使用 merge! 可能更有效,因为它不会创建新的散列,尤其是对于大型散列。

大多数时候我会使用 merge,只有在我确定它安全且更好时才使用 merge!

关于Ruby 何时使用方法! vs 重新赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18815496/

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