【问题标题】:Ruby iteration error [closed]Ruby迭代错误[关闭]
【发布时间】:2013-08-23 22:05:14
【问题描述】:

尝试使用迭代方法时,我不断收到错误消息。这是一个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)

【问题讨论】:

    标签: ruby arrays iterator


    【解决方案1】:

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

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

    【讨论】:

    • 还不错,但是对于那些刚接触 ruby​​ 的人来说,块是一件大事。
    • Plasmarob:任何想学习 Ruby 的人都应该学习积木,否则何必呢?那里有数百种教程和书籍,并不难。
    • 公平。但至少称它为一个,以便他们查找。
    • 感谢您的反馈。我最初的问题已被编辑,看起来编辑它的人犯了一些错误并删除了一些信息。 rand(3-12) 实际上是一个范围: rand(3..12) ,正如它在我的编辑器中显示的那样。我习惯了 Java,并且正在学习 Ruby。我基本上是在尝试像在 Java for(int i = 0; i
    • 我是编辑的,我没有接触(3-12)周围的任何东西。这是电工自己的错误(如果是错误的话)。 嘿,electr0hed,不要把你的错误归咎于其他人。不要说谎。查看编辑历史可以揭开真相。
    猜你喜欢
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    相关资源
    最近更新 更多