我从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>
答案 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是整数。