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 № 1pop
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