/ / spingere e schioccare i numeri di ruby ​​array << (nums.pop) + (nums.pop) - ruby

spingere e schioccare i ruby ​​matrici di numeri << (nums.pop) + (nums.pop) - rubino

Ho visto questo codice in un riassunto della matrice di ruby ​​che spinge e scoppia:

nums = []

nums << 1
nums << 2
nums << 3

nums << (nums.pop) + (nums.pop)
nums << (nums.pop) * (nums.pop)

Cosa sta succedendo qui? Sto cercando di imparare ma non sono stato in grado di capire cosa succede nelle ultime 2 righe per qualche motivo. Qualcuno può abbatterlo?

risposte:

1 per risposta № 1

pop taglia l'ultimo elemento forma una matrice e la restituisce.
<< equivale a push - aggiunge un elemento alla fine dell'array.
L'ordine delle operazioni in una riga potrebbe essere: pop, pop, add, push. Non lo spiegherò ora, ne parlerò.

Quindi, a partire da [1,2,3]:

[1,2,3] --> pop=3,pop=2,add=(2+3),push=5      --> [1,5]
[1,5]   --> pop=5,pop=1,multiply=(1*5),push=5 --> [5]

Spero che questo ti aiuti.


2 per risposta № 2

schieramento pop metodo restituisce l'ultimo elemento dalla matrice.

così il nums.pop per la prima volta restituisce il valore 3 e per la seconda volta ritorna 2

in questa dichiarazione nums << (nums.pop) + (nums.pop) stiamo aggiungendo entrambi quei valori (3,2) e spingendo nello stesso array. quindi l'array Result è [1,5]

Ora il numero di array è [1,5].

Per la seconda dichiarazione nums << (nums.pop) * (nums.pop) stiamo spuntando due elementi di nums array e moltiplicando e spingendo il risultato nello stesso array

L'array risultante è nums = [5].

controlla la ruby ​​console per ottenere ulteriori chiarimenti e passa attraverso questo link http://www.ruby-doc.org/core-2.1.2/Array.html