gpt4 book ai didi

ruby - 为什么你会 `replace` 而不是将新对象分配给同一个变量?

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

我正在查看 Solitaire Cipher 中的测验摘要,当我偶然发现这段代码时:

def triple_cut
a = @deck.index( 'A' )
b = @deck.index( 'B' )
a, b = b, a if a > b
@deck.replace( [ @deck[(b + 1)..-1],
@deck[a..b],
@deck[0...a] ].flatten )
end

我不明白为什么有一个单独的方法 replace 为此。为什么不只执行以下操作?

@deck = @deck[(b + 1)..-1] +
@deck[a..b] +
@deck[0...a]

当您可以将它们加在一起时,为什么还要麻烦地应用两个单独的方法(replaceflatten)?我没有遇到任何问题。

最佳答案

  1. 它通过不重新创建数组来节省内存。
  2. 您可以引用同一个对象而无需重新分配变量。

关于ruby - 为什么你会 `replace` 而不是将新对象分配给同一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34929067/

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