输出中出现错误的简单脚本-Ruby语言

输出中出现错误的简单脚本-Ruby语言,ruby,Ruby,我开始使用ruby语言,我有以下问题: “看看下面的脚本,看看他给我的输出(对我来说毫无意义)。我不知道在写作中是否有任何错误,但我不这么认为。有人对发生的事情有什么建议吗?” 注:ruby 2.3.1p112(2016-04-26)[x86_64-linux-gnu] class Contagem def initialize(x,y) @variavel1 = x @variavel2 = y end def teste1

我开始使用ruby语言,我有以下问题: “看看下面的脚本,看看他给我的输出(对我来说毫无意义)。我不知道在写作中是否有任何错误,但我不这么认为。有人对发生的事情有什么建议吗?” 注:ruby 2.3.1p112(2016-04-26)[x86_64-linux-gnu]

class Contagem
    def initialize(x,y)
        @variavel1 = x
        @variavel2 = y
    end

    def teste1
        return @variavel1
    end

    def teste2
        return @variavel2
    end
end

valor1 = 1
valor2 = 2

valores = Contagem.new(valor1,valor2)
puts valores
输出:

#<Contagem:0x0000000190c148>
#

执行以下操作:

valores = Contagem.new(valor1,valor2)
puts valores
您要求Ruby打印您的对象valores,这将为您提供:

#<Contagem:0x0000000190c148>
但是,如果要打印值,只需调用所做的函数:

puts valores.teste1
puts valores.teste2

您看到的输出不是错误,而是对象在ruby中的内部表示

为了改进输出,您可以定义
To_s
实例方法。在这个方法中,您构建并返回一个字符串,该字符串具有您喜欢的输出。例如:

class Contagem
  def to_s
    sprintf("variavel1: %d, variavel2: %d", @variavel1, @variavel2) 
  end
end

这是假设@variavel1和@variavel2是整数。

我真的不知道这里要问什么。但是代码看起来很好。我想他是想让我们调试他的代码,或者问为什么输出是这样的。在这个例子中,你只是要求通过
put valores
输出类。因此,您可以使用
put valores.as_json
访问类中的变量或
valores。teste1
要获取你的
@variavel1
的值,他可以在谷歌上搜索lol,或者实际查看ruby DocsNoobie,放上valores.as_json没有帮助。然而,values.test1得到了我想要的结果。非常感谢你。Sergio Tulentsev,谢谢你的反馈。L_Church,谢谢你的调试提示。我要研究一下。Makushimaru,非常感谢。我喜欢学习。检查。另外,valores.test1和valores.test2工作得非常好,这就是我想要的结果。没问题!玩得开心:)姆伯赫曼,非常感谢你的课。这个技巧很完美。正如@Makushimaru指出的那样,
inspect
方法也很方便。
class Contagem
  def to_s
    sprintf("variavel1: %d, variavel2: %d", @variavel1, @variavel2) 
  end
end