2009-11-28 58 views
0

我有一个新手问题! 我想要做这样的事情:如何打印课程内容?

puts Example.new([a,b,c]) 

,其结果是

=> a,b,c 

我想是这样的:

class Example 
    attr_accessor :something 
    def initialize(something) 
    @something = something 
    puts @something 
    end 
end 

它的工作原理,但不是我多么希望它! 谢谢!

+0

..但不是我想要的..你的意思是,你想打印的,而不是它们的值的变量名? – miku 2009-11-28 12:06:50

+0

没有。我希望打印的变量,但通过直接“把Example.new(变量1,变量2,变量3) 我想这样的事情,但我不知道该怎么做: 类示例 attr_accessor:东西 def initialize (东西) @something =东西 结束 高清something_else @something = @ something.to_s + “X” 结束 结束 提出Example.new(东西) 这个东西返回 “somethingx” – 2009-11-28 14:15:51

回答

5

会这样的工作?

class Example 
    def initialize(args = []) 
    @args = args 
    end 

    def to_s 
    @args.join(",") 
    end 
end 

puts Example.new([1,2,3]) 
>> 1,2,3 
+0

太棒了!谢谢! – 2009-11-28 16:49:03

5

您是否想要打印(以可读形式)的对象?尝试使用inspect method

class Myobj 
    attr_accessor :x, :y, :z 
end 

a = Myobj.new 
a.x = 1; a.y = 2; a.z = 3 
a.inspect #=> "#<Myobj:0x1bc48950 @y=2, @x=1, @z=3>" 
+0

谢谢回答!我不想写a = Myobj.new,我想直接放Myobj.new(x,y,z)并得到印x,y,z谢谢 – 2009-11-28 12:39:28