Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
A question about ruby array
Zhao Yi
12/17/2008 7:36:00 AM
I read some ruby examples and found there is a syntax I don't
understand. When getting an array element, it uses "array[:id]". I
wander why there is a colon before the index. What does this mean?
--
Posted via
http://www.ruby-...
.
3 Answers
Firstname Secondname
12/17/2008 8:41:00 AM
0
Hello,
there are Hashes and Arrays. They are different.
array[:id] is for accessing a value from a Hash by using :id as a key.
array = {:id => 1, :something => "value"}
puts array[:id] #prints 1
puts array[:something] #prints "value"
Your example uses wrong name for a variable. It should be "hash" :).
Marius ŽilÄ?nas
Zhao Yi wrote:
> I read some ruby examples and found there is a syntax I don't
> understand. When getting an array element, it uses "array[:id]". I
> wander why there is a colon before the index. What does this mean?
--
Posted via
http://www.ruby-...
.
David A. Black
12/17/2008 10:10:00 AM
0
Hi --
On Wed, 17 Dec 2008, Zhao Yi wrote:
> I read some ruby examples and found there is a syntax I don't
> understand. When getting an array element, it uses "array[:id]". I
> wander why there is a colon before the index. What does this mean?
It's actually hashes, not arrays, that use this syntax (see other
reply in this thread). What the :id thing means is that :id is a
Symbol object. Symbol is a class of objects that correspond directly
to entries in Ruby's internal symbol table. There's one entry for
every identifier in use while your program is running: every variable
name, method name, and constant. If you want to see them all, you can
do:
Symbol.all_symbols
in irb.
The symbol table is really part of the inner workings of the
interpreter, but Ruby exposes it to programmer-space through the
Symbol class. Symbols have characters; therefore, they're used a lot
in situations where you might also use strings (such as hash keys).
They're more lightweight in terms of processing than strings are: a
string has to know how to resize itself, for example, whereas a symbol
is immutable.
David
--
David A. Black / Ruby Power and Light, LLC
Ruby/Rails consulting & training:
http://www.r...
Coming in 2009: The Well-Grounded Rubyist (
http://manning....
)
Zhao Yi
12/18/2008 12:56:00 AM
0
David A. Black wrote:
> It's actually hashes, not arrays, that use this syntax (see other
> reply in this thread). What the :id thing means is that :id is a
> Symbol object. Symbol is a class of objects that correspond directly
> to entries in Ruby's internal symbol table. There's one entry for
> every identifier in use while your program is running: every variable
> name, method name, and constant. If you want to see them all, you can
> do:
>
> Symbol.all_symbols
>
> in irb.
>
> The symbol table is really part of the inner workings of the
> interpreter, but Ruby exposes it to programmer-space through the
> Symbol class. Symbols have characters; therefore, they're used a lot
> in situations where you might also use strings (such as hash keys).
> They're more lightweight in terms of processing than strings are: a
> string has to know how to resize itself, for example, whereas a symbol
> is immutable.
>
>
> David
Ok I understand,
thanks for your explanation.
--
Posted via
http://www.ruby-...
.
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
A question about ruby array
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password