Sunt înscris luna viitoare la tabăra intensivă de programare pe calculator, Maker Academy. Pentru a avea un avans, m-am gândit să lucrez la cartea Learn Ruby the Hard Way a lui Zed Shaw.
Exercițiul 25 pare să-mi testeze abilitățile de rezolvare a problemelor, așa că m-am gândit să scriu o postare în care să documentez modul în care am rezolvat apoi am remediat mesajele de eroare. Această postare se adresează începătorilor în lumea programării deoarece îmi imaginez că sunt lucruri foarte elementare pe care le greșesc.
2. Introduceți în partea stângă, în fila „user”, următorul cod:
3. Am salvat apoi am redeschis fișierul original (stricat 🙁 ).
Sigur că a existat un spațiu de neîntrerupere accidental Alt și bara de spațiu:
HALLELUJAH .. m-am gândit… Am reparat în sfârșit vechiul meu script…….
L-am rulat din nou și am avut ÎNCĂ același mesaj de eroare!
Aici este locul unde probabil ar fi trebuit să mă gândesc:
„Am corectat o dată și am reușit să lucrez la exercițiu și să-l termin. Voi încheia ziua și nu-mi voi mai face griji cu privire la fișierul care returnează un mesaj de eroare.”.
Dar sunt prea curios / încăpățânat pentru a mă mulțumi să las eroarea să planeze asupra primului meu script.
Am rulat irb în terminal.
Am rulat din nou fișierul pe care îl aveam corect & fișierul cu mesajul de eroare:
Am încercat să-mi dau seama care este diferența dintre cele două fișiere.
Poate că era vorba de directoarele în care au fost salvate?
Am verificat și sigur că au fost salvate în directoare diferite.
Așa că am salvat fișierul de eroare în același director ca și fișierul care a funcționat…. ÎNTOTDEAUNA mesajul de eroare!
Nu vedeam nicio altă diferență așa că am ….
Copiat și lipit textul din fișierul care funcționa în fișierul de eroare.
Apoi s-a întâmplat ceva teribil!
Ambele fișiere au încetat să mai funcționeze!!!!
Aceeași mesaj de eroare a apărut pentru primul fișier și acum fișierul de lucru returna ‘false’ când îl ‘ceream’ cu irb:
Cauza posibilă a acestei probleme:
Prea multe fișiere cu același nume sau cu nume similar în același director?
Le-am șters pe toate, mai puțin unul… Și ca prin minune…
A funcționat !!!
Am rulat scriptul de lucru pentru Ex25 în terminal și am urmat instrucțiunile despre cum să folosesc irb pentru a apela funcțiile sale.
Aici sunt rezultatele mele și explicația mea a ceea ce se întâmplă:
Scriptul corect pentru Ex25
Executarea scriptului în linia de comandă. ‘irb’
Am etichetat punctele în care a trebuit să mă gândesc puțin la modul în care funcționa. Iată explicația mea:
1. Se tipărește ‘wait’ pentru că funcția acționează asupra array-ului ‘words’ care nu este sortat. Matricea sortată se numește ‘cuvinte_orânduite’.
2. Matricea ‘cuvinte’ a avut primele și ultimele valori („all” și „wait” ) decalate în funcția de tipărire.
3. Apelează la matricea ‘cuvinte_orânduite’, nu la matricea ‘cuvinte’ care are valorile lipsă. Prin urmare, ‘all’ este încă în array.
4….Se pare că lipsește din imagine … Așa că am considerat în mod clar că este irelevant atunci, prin urmare, voi face același lucru din nou acum..
5. Folosind variabila originală „sentence” și trecând aceasta prin funcție. Aceasta rupe această variabilă „sentence” într-o matrice de fiecare dată când întâlnește un spațiu. Apoi, folosind funcția Ex25.sort_words pentru a sorta această matrice de cuvinte.
6. Se ia variabila originală ‘sentence’, o sparge într-o matrice de cuvinte, apoi se tipărește prima și ultima valoare din acea matrice.
Acum am ajuns la sfârșitul luptei mele cu exercițiul 25 din Learn Ruby the Hard way. Sper că v-ați bucurat și ați găsit utilă rezolvarea problemelor mele higgledy piggldy, care în cele din urmă a avut ca rezultat faptul că am învins mesajele de eroare date de rularea scriptului meu. Vă rog să mă contactați dacă, printr-o mică șansă, citiți acest & aveți nevoie de ajutor pentru a-l înțelege.