使用多个赋值来执行array.insert的操作?

时间:2016-01-22 01:47:16

标签: arrays ruby

我正在查看我的第一个Ruby测验(The Solitaire Cipher)的示例解决方案的代码,然后遇到了这个小块:

def move_down( index )
    if index == @deck.length - 1
        @deck[1..1] = @deck[index], @deck[1]
        @deck.pop
    else
    ...
    end
end

撰写此解决方案的人显然使用了第二行中的多项分配,将@deck[index]插入@deck[1]之前的位置。为什么不用这个呢?

@deck.insert(1, @deck[index])

有区别吗?

1 个答案:

答案 0 :(得分:1)

好的,现在我明白了你的意思。当然,他们会给出相同的结果。我想这只是选择哪种风格对你来说更清楚,或者你认为你的代码更易于理解,从而更易于维护的问题。

如果你的问题是关于哪种方法更“高效”,我不知道答案,我认为这并不重要,因为红宝石并不意味着高效,而是富有表现力。