Forum: Italian Ruby user group help array di array

Posted by Alfonso Caponi (al_)
on 2009-12-24 11:47
Ciao a tutti,

sto combattendo con una funziona simile a questa:


function(["x","y","x"]) do |a,b|c|
 printf("%10s %10s %10s\n",a,b,c)
end


Funziona bene ma il mio obbiettivo è scrivere una cosa del genere :


new array

function(["x","y","z"]) do |a,b|c|
 push a,b,c into array
end

if array is not empty
 printf("%10s %10s %10s\n",a,b,c)
end


Qual'e' il modo migliore per realizzarlo?

Grazie mille,
Al
Posted by Alessandro Scolavino (ninjinka)
on 2009-12-24 13:10
Alfonso Caponi wrote:

> 
> new array
> 
> function(["x","y","z"]) do |a,b|c|
>  push a,b,c into array
> end
> 
> if array is not empty
>  printf("%10s %10s %10s\n",a,b,c)
> end
> 
> 
> Qual'e' il modo migliore per realizzarlo?


usare direttamente push invece che una funzione che fa solo push ?
Posted by Alfonso Caponi (al_)
on 2009-12-24 15:08
Alessandro Scolavino wrote:
> Alfonso Caponi wrote:
> 
>> 
>> new array
>> 
>> function(["x","y","z"]) do |a,b|c|
>>  push a,b,c into array
>> end
>> 
>> if array is not empty
>>  printf("%10s %10s %10s\n",a,b,c)
>> end
>> 
>> 
>> Qual'e' il modo migliore per realizzarlo?
> 
> 
> usare direttamente push invece che una funzione che fa solo push ?

mmhh in realtà la funziona mi ritorna i valori di a,b,c

sto provando un po' di cose della serie :

array = []

funziona(["x","y"]) do |a,b|
 array.push(["#{a.value}"],["#{b.value}"])
end

array.each {|x,y| printf("%20s %s\n",x,y)}

che ne pensate?
Posted by Alfonso Caponi (al_)
on 2009-12-24 15:17
Alfonso Caponi wrote:
> Alessandro Scolavino wrote:
>> Alfonso Caponi wrote:
>> 
>>> 
>>> new array
>>> 
>>> function(["x","y","z"]) do |a,b|c|
>>>  push a,b,c into array
>>> end
>>> 
>>> if array is not empty
>>>  printf("%10s %10s %10s\n",a,b,c)
>>> end
>>> 
>>> 
>>> Qual'e' il modo migliore per realizzarlo?
>> 
>> 
>> usare direttamente push invece che una funzione che fa solo push ?
> 
> mmhh in realtà la funziona mi ritorna i valori di a,b,c
> 
> sto provando un po' di cose della serie :
> 
> array = []
> 
> funziona(["x","y"]) do |a,b|
>  array.push(["#{a.value}"],["#{b.value}"])
> end
> 
> array.each {|x,y| printf("%20s %s\n",x,y)}
> 
> che ne pensate?

ops c'e' da fare una correzione:

array.push([["#{a.value}"],["#{b.value}"]])

così sembra funzionare! :)
Posted by Andrea Pavoni (apeacox)
on 2009-12-25 15:16
(Received via mailing list)
se ho capito bene, ti occorre un metodo che prendendo un array di
elementi in input, restituisca un array contentente un ulteriore array
per elemento, giusto? questo funziona senza sforzi ;)

def prova(*args)
    args.collect {|x| [x]}
end

ciao,
A.

Alfonso Caponi ha scritto:
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.