输出中带有Error的简单脚本 - Ruby语言

时间:2018-02-20 12:55:39

标签: 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
        return @variavel1
    end

    def teste2
        return @variavel2
    end
end

valor1 = 1
valor2 = 2

valores = Contagem.new(valor1,valor2)
puts valores

输出:

#<Contagem:0x0000000190c148>

2 个答案:

答案 0 :(得分:0)

通过执行以下操作:

valores = Contagem.new(valor1,valor2)
puts valores

你要求Ruby打印你的Object valores,它给你:

#<Contagem:0x0000000190c148>

您可以通过以下方式查看更多详细信息:

puts valores.inspect

但是如果你想打印这个值,只需调用你所做的函数:

puts valores.teste1
puts valores.teste2

答案 1 :(得分:0)

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

要改善输出,您可以定义to_s实例方法。在此方法中,您将构建并返回一个具有您喜欢的输出的字符串。 E.g:

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

假设@ variavel1和@ variavel2是整数。