Ruby 迭代错误

标签 ruby arrays iterator

<分区>

尝试使用迭代方法时,我不断收到错误。这是一个 initialize 方法,它创建一个随机大小的数组,其中填充了随机整数。感谢您的帮助。

 def initialize
   i = 0
   @random_size = rand(3-12)
   @new_arr = Array.new(@random_size)
   loop do
     @new_arr[i] = rand(1..50)
     break if i >= @random_size
     i += 1
   end
 end


编辑 原始问题如下所示。注意 rand(3-12)

enter image description here

最佳答案

在 Ruby 中(以及任何具有某些功能的语言,就此而言)您通常不会编写显式索引,那太强制性(而且冗长)。函数式方法看起来像这样:

def initialize
  @random_size = rand(3..12)
  @new_arr = @random_size.times.map { rand(1..50) }
end

关于Ruby 迭代错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18412598/

相关文章:

c++ - 为什么 set<string>::iterator 不能作为 map 的 key?

c++ - 比较两个不同的 boost::iterator_facade 迭代器

html - 如何突出显示 2 个 html 文件之间的差异

python - TensorFlow ValueError 维度不兼容

c++ - 空花括号 {} 作为范围的结尾

javascript - 如果文本包含特定文本,则删除一些 <li>

php - 使用数组将 css 类分配给 tagcloud

ruby - 如何在 Rspec 测试中允许对模块常量的非限定访问?

ruby-on-rails - Capybara 和 Poltergeist 的 save_screenshot 的未定义方法

arrays - 为什么str.next!在 Enumerable#map 中用相同的元素填充数组?