Ruby 如何在一条生产线上进行链移和取样
假设您有一个数组:Ruby 如何在一条生产线上进行链移和取样,ruby,chaining,Ruby,Chaining,假设您有一个数组: a = [2, 5, 8] 要删除第一个元素,可以使用shift: a.shift # => 2 a # => [5, 8] 在a上执行sample没有问题: a.sample # => 5 这两种方法似乎不可能同时使用。你得到 a.shift.sample # => undefined method `sample' for 2:Fixnum 最有效、最简洁的方法是什么?上下文正在为Ruby tic-tac-toe程序遍历winning_组合
a = [2, 5, 8]
要删除第一个元素,可以使用shift
:
a.shift # => 2
a # => [5, 8]
在a
上执行sample
没有问题:
a.sample # => 5
这两种方法似乎不可能同时使用。你得到
a.shift.sample # => undefined method `sample' for 2:Fixnum
最有效、最简洁的方法是什么?上下文正在为Ruby tic-tac-toe程序遍历winning_组合数组。我不想修改原始数组 使用以下命令:
a = [2, 5, 8]
p a.drop(1).sample #=>5
a = [2, 5, 8]
p a.drop(1).sample #=>8
这不会像
shift
那样修改数组,仅供参考。是的,我听到了。在这种情况下完全可以,因为WINNING_COMBOS多维数组是一个常量。@DavidPardy如果您不想修改源数组,正如您所评论的,请在您的帖子中也提到它。