发表时间:2007年5月6日 1时14分24秒 评论/阅读(0/0)
嗯.书太厚了点,看到了第十章.想动动手了.
动态语言的特性真是丰富.我们可以做的事情太多了.哈哈!!
module Debug
def who_am_i
"#{self.class.name} (\##{self.object_id}): #{self.to_s}"
end
end
class Object
def self.inherited(subclass)
puts "New subclass: #{subclass}"
end
end
class Phonograph
include Debug
def to_s
" I'm Phonograph"
end
end
class EightTrack
include Debug
include Enumerable
def to_s
" I'm EightTrack"
end
def each
yield 1
yield 2
yield 3
end
end
ph = Phonograph.new
et = EightTrack.new
puts(ph.who_am_i)
puts(et.who_am_i)
et.each {|x| puts x}
puts et.select{|x| x > 1}
puts et.include?(1)
puts et.inject{|x,y| x*y}
嗯.书太厚了点,看到了第十章.想动动手了.
动态语言的特性真是丰富.我们可以做的事情太多了.哈哈!!
module Debug
def who_am_i
"#{self.class.name} (\##{self.object_id}): #{self.to_s}"
end
end
class Object
def self.inherited(subclass)
puts "New subclass: #{subclass}"
end
end
class Phonograph
include Debug
def to_s
" I'm Phonograph"
end
end
class EightTrack
include Debug
include Enumerable
def to_s
" I'm EightTrack"
end
def each
yield 1
yield 2
yield 3
end
end
ph = Phonograph.new
et = EightTrack.new
puts(ph.who_am_i)
puts(et.who_am_i)
et.each {|x| puts x}
puts et.select{|x| x > 1}
puts et.include?(1)
puts et.inject{|x,y| x*y}