0

私は2つの文字列を持っているとしましょう"Cat" and "Mouse"

私はそれらを配列に入れました

arr = ["Cat","Mouse"]

そして、私は2つの変数を持っていますhero and villain

これで変数heroが動的に割り当てられ、「Cat」または「Mouse」のいずれかになります。

では、値をvillain削除して変数を割り当てる最良の方法は何でしょうか?heroarr

hero = # Either "Cat" or "Mouse"
villain = # The NOT HERO VALUE in arr

参考:関数またはいくつかの手動のトリックを使用して実行できることはわかっています。しかし、これを行うRubyの方法があるかどうかは疑問です。

4

3 に答える 3

3
arr = ["Cat","Mouse"]
arr.shuffle!

hero = arr.pop
villain = arr.pop

または、次のように簡単に書くことができます。

hero, villain = arr.shuffle!

(スプラット(*)は必要ありません)

于 2013-07-24T05:42:26.287 に答える
2

できるよ

villain = (arr - [hero])[0]

これは、ヒーローが誰であるかをすでに知っている場合にうまく機能します。両方を同時にランダムにピックしたい場合は、7stud の方が適しています。または、この非破壊的なバリアント:

hero, villain = *arr.shuffle
于 2013-07-24T05:43:01.717 に答える
1

メソッドをカバーするだけsampleです:

arr = ["Cat","Mouse"]
hero, villain = arr.sample(2)
于 2013-07-24T06:02:33.067 に答える