From: Morton Goldberg Date: 2007-06-16T06:58:11+09:00 Subject: Re: test to see if a variable exists On Jun 15, 2007, at 4:36 PM, Colin Summers wrote: > So I am stealing all these identities and storing everything in a big > array of objects stolen_identity, and having the index be social > security numbers: > > ss[34323843] = Stolen_identity.new > > But say I pick up a paycheck stub and it has 3428294. How do I know if > I already have it? Does > if (exist ss[3428294]) then ... end > work? How can I see if a variable exists? > > Thanks. > > (please include your social security with your answer) Using a hash is the way to go here. You've already been advised to do that. But here is an example that may give you some additional insight. class Identity def initialize(ss) @ss = ss end def process puts "#{@ss}: I've been stolen!" end end Stolen = {} ss1 = '123-12-1234' ss2 = '789-78-7890' Stolen[ss1] = Identity.new(ss1) # One way Stolen[ss1].process if Stolen[ss1] # process runs Stolen[ss2].process if Stolen[ss2] # process does not run # Another way Stolen[ss1].process rescue nil # process runs Stolen[ss2].process rescue nil # process does not run There are many other ways, but they all rely on same thing: that Stolen[ss2] returns nil and nil is treated as false in boolean expressions. Regards, Morton