Hi all,
What exactly does the following do and how can I test it? It looks like its creating a new value with the key name, but how do you call it?
def [](name)
@val[name]
end
Any help appreciated
Kev
Hi all,
What exactly does the following do and how can I test it? It looks like its creating a new value with the key name, but how do you call it?
def [](name)
@val[name]
end
Any help appreciated
Kev
Selon Kev Jackson <kevin.jackson@it.fts-vn.com>:
Hi all,
What exactly does the following do and how can I test it? It looks like
its creating a new value with the key name, but how do you call it?def [](name)
@val[name]
endAny help appreciated
Just call it using array notation: foo[name]. Array notation is just syntactic
sugar for the method [](argument), i.e. foo[name] is the same as foo.[](name).
So basically you have here an object that contains a hash as an instance
variable (named @val, not the clearest name ever chosen ), and allows you to
directly read the values in that hash using array notation, as if the object was
a hash itself.
--
Christophe Grandsire.
http://rainbow.conlang.free.fr
It takes a straight mind to create a twisted conlang.
It's actually Ruby's syntax for operator overloading. An instance of
a class that defines this can be "indexed" as though it were an array
or hash. Other operators are overriden in the same way, e.g.
def +(x)
...
end
Remember that everything in Ruby is an object, so when you see even
something as simple as 1 + 1 in Ruby, that's actually syntactic sugar
for 1.+(1), calling the + method for an instance of the Fixnum class.
On 10/24/05, Kev Jackson <kevin.jackson@it.fts-vn.com> wrote:
Hi all,
What exactly does the following do and how can I test it? It looks like
its creating a new value with the key name, but how do you call it?def [](name)
@val[name]
end
Christophe Grandsire wrote:
Selon Kev Jackson <kevin.jackson@it.fts-vn.com>:
Hi all,
What exactly does the following do and how can I test it? It looks like
its creating a new value with the key name, but how do you call it?def [](name)
@val[name]
endAny help appreciated
Just call it using array notation: foo[name]. Array notation is just syntactic
sugar for the method [](argument), i.e. foo[name] is the same as foo.[](name).So basically you have here an object that contains a hash as an instance
variable (named @val, not the clearest name ever chosen), and allows you to
directly read the values in that hash using array notation, as if the object was
a hash itself.
--
Christophe Grandsire.
Thanks, so I had actually accessed it by accident anyway :).
Kev