1

配列があるとします:

a = [2, 5, 8]

最初の要素を取り除くには、次を使用できますshift

a.shift # => 2
a # => [5, 8]

sampleで問題はありませんa:

a.sample # => 5

両方の方法を連鎖させることはできないようです。あなたが得る

a.shift.sample # => undefined method `sample' for 2:Fixnum

これを行う最も効率的で簡潔な方法は何でしょうか? コンテキストは、Ruby tic tac toe プログラムの wining_combo 配列を反復処理しています。元の配列を変更したくありません。

4

1 に答える 1

2

以下を使用します。

a = [2, 5, 8]
p a.drop(1).sample #=>5
a = [2, 5, 8]
p a.drop(1).sample #=>8
于 2013-04-26T06:59:23.193 に答える