如何编写Ruby类来保存一对或多个项目?

ant*_*pug 0 ruby ruby-on-rails class

这是我到目前为止,它没有工作:

class Couple(o,t)
  one = o
  two = t
end

couple1 = Couple.new(10, "Ten")
p couple1.one
p couple1.two
Run Code Online (Sandbox Code Playgroud)

不知道为什么它不起作用?

Rya*_*ons 13

定义一个类不像定义函数那样工作,你必须在它们上定义使用内部变量的函数,以及告诉它在调用时要做什么的初始化器.new

attr_accessor有助于设置函数和变量.最简单的方法是使用类似的类

class Couple
  attr_accessor :one, :two
end

couple1 = Couple.new
couple1.one = 10
couple1.two = "Ten"
p couple1.one
p couple1.two
Run Code Online (Sandbox Code Playgroud)

要将新函数用于initialize具有一些变量的类,您可以定义该函数,为您提供类似于的定义

class Couple
  attr_accessor :one, :two

  def initialize(one, two)
    @one = one
    @two = two
  end
end

couple1 = Couple.new(10, "Ten")
p couple1.one
p couple1.two
Run Code Online (Sandbox Code Playgroud)