说我有两个字符串"Cat" and "Mouse"
我把它们放在一个数组
中arr = ["Cat","Mouse"]
我有两个变量说hero and villain
现在变量hero
将动态分配,可以是“Cat”或“Mouse”
那么通过消除villain
hero
值来分配arr
变量的最佳方式是什么?
实施例
hero = # Either "Cat" or "Mouse"
villain = # The NOT HERO VALUE in arr
仅供参考:我知道可以使用功能或一些手动技巧来完成。但我只是想知道是否有任何Ruby方法可以做到这一点。
答案 0 :(得分:3)
arr = ["Cat","Mouse"]
arr.shuffle!
hero = arr.pop
villain = arr.pop
或者,您可以简单地写一下:
hero, villain = arr.shuffle!
(不需要splat(*))
答案 1 :(得分:2)
你可以做到
villain = (arr - [hero])[0]
如果你已经知道你的英雄是谁,那么效果很好。如果你想同时随机选择,7stud更好。或者这种非破坏性变体:
hero, villain = *arr.shuffle
答案 2 :(得分:1)
仅涵盖sample
方法:
arr = ["Cat","Mouse"]
hero, villain = arr.sample(2)