Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
iterating through a block; declaring an index/counter within that block
Thufir Hawat
10/20/2007 1:57:00 AM
Where does "food" come from in the example below? The declaration is
within the block? The varaible food exists only within the block?
What is (are) the value(s) for "food"?
Read the following aloud to yourself.
['toast', 'cheese', 'wine'].each { |food| print food.capitalize }
While this bit of code is less readable and sentence-like than the
previous examples, I'd still encourage you to read it aloud. While
Ruby may sometimes read like English, it sometimes reads as a shorter
English. Fully translated into English, you might read the above as:
With the words 'toast', 'cheese', and 'wine': take each food and print
it capitalized.
The computer then courteously responds: Toast, Cheese and Wine.
<
http://poignantguide.net/ruby/chapter-3.html#se...
thanks,
Thufir
1 Answer
7stud --
10/20/2007 3:28:00 AM
0
Thufir wrote:
> Where does "food" come from in the example below? The declaration is
> within the block? The varaible food exists only within the block?
> What is (are) the value(s) for "food"?
>
>
>
>
> Read the following aloud to yourself.
>
> ['toast', 'cheese', 'wine'].each { |food| print food.capitalize }
>
That thing on the right of each, between the braces, is a similar to a
method definition:
def func(food)
print food.capitalize
end
food is the parameter variable and you would call func like this:
func('toast')
'toast' then gets assigned to the parameter variable food.
each() is also method. each() is defined to pass each member of the
thing to its left to the block on its right. It is similar to doing
this:
def each(arr)
count = 0
while count < arr.length
curr_elmt = arr[count]
my_func(curr_elmt)
count += 1
end
end
def my_func(food)
print food.capitalize
end
arr = ['toast', 'cheese', 'wine']
each(arr)
--
Posted via
http://www.ruby-...
.
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
iterating through a block; declaring an index/counter within that block
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