rand(array.length) # returns random index <br>
array[rand(array.length)] # returns random array object
我无法理解背后的逻辑。我假设第二个例子也返回随机索引,然后将其存储在数组中。
kitty = [100,102,104,105]
rand(kitty.length) # returns index, for example 3 ( or 0,1,2 )
array[rand(kitty.length)] # returns random array object, for example 104 ( or 100,102,105)
答案 0 :(得分:2)
虽然array.sample
是从数组中获取随机元素的最佳方法,但我相信OP正在询问方法的链接是如何工作的。
当您致电:rand(array.length)
时,会返回一个数字,为真。但是在以下情况下:
array[ rand(array.length) ]
返回一个数字,然后立即进入数组调用,这将为您提供该数组索引处的对象。
答案 1 :(得分:0)
这是一个教程吗?如果是这样,请相信它。 array.sample
是如何做到的。
答案 2 :(得分:0)
红宝石代码
kitty = [100,102,104,105]
kitty.sample #to get random array elements
答案 3 :(得分:0)
您所描述的行为是预期的:
array[index]
是对提供的数组中对象的引用,其中 index 是一个小于array.length
的数值,因为rand(array.length)
返回一个随机数字值小于array.length
您正在有效地访问给定数组的随机索引处的元素。
虽然可以使用array.sample
获得相同的行为,但建议使用。
有关Ruby阵列的更多信息,请参阅以下文档:http://ruby-doc.org/core-2.2.0/Array.html