From: BlueFox Date: 2006-02-24T15:48:32+09:00 Subject: Re: What's mean? global variables > Jacob Fugal wrote: >> $test is a global variable. Thats important in this case for scope -- >> $test continues to exist and retain its value between invocations of >> test. The ||= idiom is one commonly found in ruby. It's similar to += >> in that it is simply short hand for "$test = $test || Test.new". $test >> starts with a value of nil, and the first time test is run (unless you >> manually set $test beforehand), $test is initialized to a new instance >> of Test, since "(nil || anything) == anything". On subsequent runs, >> $test retains its value. From this behavior, ||= can be thought of as >> a "default initializer" operator. > > Jacob, > > So is this a shortcut for creating a singleton in Ruby? Albeit a slightly > different one I would guess, using a global variable to store a single > instance rather than using a class method to instantiate a new or return > the existing instance. > > Thanks... > -dave > > Oh! the test function just an another way to access the global variable $test? yesterday i forgot that we can define a fuction outside classes(unlike java) and function's return value is the last statement's return value? Thanks very much. leo.