arrays - Ruby:将 int 和存储转换为数组

标签 arrays ruby

在我的第一个 ruby​​ 硬件作业中,我必须编写一个 FizzBu​​zz 程序。 (如果一个 int 是/3,它转换为一个“Fizz”字符串,如果被 5 整除,一个“Buzz”字符串,如果被两个“FizzBu​​zz”字符串整除。)最后,如果不能被任何一个整除,我需要转换将其自身编号为一个字符串,并在名为 main 的方法中将其存储到一个数组中。

class FizzBuzz
  def initialize(int_num, str_fb, value)
   self.int_num = int_num
   self.str_fb = str_fb
   self.value = value
  end

  def int_num
   @int_num
  end

  def int_num=(num)
   raise TypeError if not num.is_a? Integer
   @num = int_num
  end

   def str_fb
    @str_fb
   end

  def str_fb=(name)
    if int_num % 3 == 0
      int_num = "Fizz"
    elsif int_num % 5 == 0
       int_num = "Buzz"
    elsif int_num % 5 == 0 and int_num % 3 == 0
       int_num = "FizzBuzz"
    else
      str_fb = int_num.to_s     #Also needs to be stored in an array in main function
  end


  def main
    ary =array.new
  end
end

如何将新转换的 int_num(现在是字符串)存储到 main 中的数组中?另外,上面的代码只是该类的一个方法,但它看起来正确吗?谢谢,我是一个成熟的 Ruby 新手,感谢所有帮助。

** 添加了完整代码。仍然不完整,因为我需要为循环 1-50 的值创建一个 getter 和 setter。

最佳答案

要回答原来的问题,只需将要返回的变量放在数组中的方括号中即可:

def main
  [str_fb]
end

许多其他特定于 Ruby 的改进可以在这里进行。对于初学者,您可以将 int_numint_num= 方法替换为一行:attr_accessor :int_num。 (您需要将 raise 移至构造函数。)

您可以将 str_fb 方法替换为另一行:attr_reader :str_fb

在构造函数中,Ruby中更常见的是使用实例变量来存储输入参数。考虑哪些方法要公开,哪些要私有(private)。您可以将实例方法(包括 attr_accessorattr_reader 添加一行 private 并将这些方法移到它下面。

因此您的代码可能如下所示:

class FizzBuzz

  attr_accessor :int_num
  attr_reader :str_fb, :value

  def initialize(int_num, str_fb, value)
    raise TypeError unless int_num.is_a?(Integer)
    @int_num = int_num
    @str_fb = str_fb
    @value = value
  end

  <public instance methods here>

  private

  <private instance methods here>

end

关于arrays - Ruby:将 int 和存储转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40387411/

相关文章:

php - 如何检查变量是否为数组?...或类似数组的东西

ruby-on-rails - 如何将 Rails 打包为独立的可执行文件

ruby - sinatra 应用程序的多个 sidekiq 队列

ruby - 使用 watir 标记或突出显示 div 内的部分文本

javascript - 对 Javascript 数组进行排序并获取数字差异

java - 制作并显示整数数组的所有排列

ruby - 在 Ruby 中,什么是 AboutClasses 类?

ruby-on-rails - 从 Ruby on Rails 应用程序运行 phantomjs

javascript - PHP javascript 关联数组

Python3、Numpy——矩阵元素的矩阵