我想知道是否有更干净的方法来做这件事。基本上,我想从可变长度的数组中选取一个随机元素。通常,我会这样做:
myArray=[“东西”、“小部件”、“红宝石”、“糖果”、“java”、“翡翠”、“等等”]
item=myArray[rand(myArray.length)]
是否有更可读/更简单的内容来替换第二行?或者这是最好的方法。我想你可以先做myArray.shuffle.first,但我几分钟前才看到#shuffle,所以我还没有实际使用它
只需使用Array#sample:
[:foo,:bar]。示例#=>;:foo,or:bar:-)
它在Ruby 1.9.1+中提供。为了能够在早期版本的Ruby中使用它,您可以要求“backports/1.9.1/array/sample”
注意,在Ruby 1.8.7中,它存在于不幸的名称choice下;它在以后的版本中被重命名,所以您不应该使用它
虽然在这种情况下不有用,sample在需要大量不同样本的情况下接受number参数