Videl som tento kód v súhrne rubínovej matice, ktorá tlačila a vyskakovala:
nums = []
nums << 1
nums << 2
nums << 3
nums << (nums.pop) + (nums.pop)
nums << (nums.pop) * (nums.pop)
Čo sa tu deje? Snažím sa učiť, ale z nejakého dôvodu som nedokázal pochopiť, čo sa deje v posledných dvoch riadkoch. Môže niekto rozdeliť?
odpovede:
1 pre odpoveď č. 1pop
odstráni posledný prvok z poľa a vráti ho.
<<
je rovnaká ako push
- pridáva jeden prvok na koniec poľa.
Poradie operácií v riadku by bolo: pop, pop, add, push. Nebudem to teraz vysvetľovať, čítať o tom.
Tak, počnúc [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]
Dúfam, že to pomôže.
2 pre odpoveď č. 2
rad pop
metóda vráti posledný prvok z poľa.
takže nums.pop
po prvýkrát vráti hodnotu 3
a druhýkrát sa vráti 2
v tomto vyhlásení nums << (nums.pop) + (nums.pop)
pridávame tieto hodnoty (3,2) a tlačíme do rovnakého poľa. takže pole výsledkov je [1,5]
Teraz je pole nums [1,5]
.
Pre druhé vyhlásenie nums << (nums.pop) * (nums.pop)
sme popping dva prvky nums array
a vynásobením a tlačením výsledku do rovnakého poľa
Výsledné pole je nums = [5].
skontrolujte rubínovú konzolu, aby ste získali viac objasnenia a tiež prešli týmto odkazom http://www.ruby-doc.org/core-2.1.2/Array.html