切片 vs 提取! rails 5

slice vs extract! rails 5

我今天正在对旧代码进行一些审查,并且出现了这个问题,如果提前道歉,这可能是一个愚蠢的问题,但是切片和提取之间有什么真正的区别!函数(对于哈希),我查看了文档,它们之间没有明显区别(至少对我而言):

也没有在社区上找到任何东西,提前谢谢。

slice方法returns一个新哈希包含被选元素。这会保留原始对象。

extract! 方法 从原始散列中删除这些条目 并 returns 提取的元素。这会改变原始对象。

Note: In many cases Ruby methods ending in ! alter the object they're called on as opposed to similar methods which do not have that extension where a new object is returned.

差异需要仔细阅读文档,其中 extract! 方法被描述为:

Removes and returns the key/value pairs matching the given keys.

此处的“删除”是区别符。