2009-11-28 113 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