Jeg har tilmeldt mig den intense computerprogrammeringsbootcamp, Maker Academy, i næste måned. For at få et forspring tænkte jeg, at jeg ville arbejde mig igennem Zed Shaws bog Learn Ruby the Hard Way.
Øvelse 25 ser ud til at teste mine problemløsningsevner, så jeg tænkte, at jeg ville skrive et indlæg, hvor jeg dokumenterer, hvordan jeg arbejdede ud og derefter rettede mine fejlmeddelelser. Dette indlæg er rettet mod nybegyndere i programmeringsverdenen, da jeg forestiller mig, at det er meget grundlæggende ting, som jeg får forkert.
Jeg prøvede at finde ud af hvad forskellen var mellem de to filer.
Måske var det mapperne, de var gemt i?
Jeg tjekkede, og ganske rigtigt var de gemt i forskellige mapper.
Så jeg gemte fejlfilen i samme mappe som den fil, der virkede…. STILL the error message!!
Jeg kunne ikke se nogen anden forskel, så jeg ….
Kopierede og indsatte teksten fra den fungerende fil til fejlfilen.
Så skete der noget forfærdeligt!
BENGE filer holdt op med at virke!!!!
Den samme fejlmeddelelse dukkede op for den første fil, og nu returnerede arbejdsfilen ‘false’, når jeg ‘krævede’ den med irb:
Mulig årsag til dette problem:
Tå mange filer med samme eller lignende navn i samme mappe?
Jeg slettede alle undtagen én… Og som ved magi ..
DET VIRKEDE !!!
Jeg kørte arbejdsscriptet for Ex25 i terminalen og fulgte instruktionerne om, hvordan man bruger irb til at kalde dets funktioner.
Her er mine resultater og min forklaring på, hvad der sker:
Det korrekte script for Ex25
Kørsel af scriptet i kommandolinjen ‘irb’
Jeg har mærket de punkter, hvor jeg måtte tænke lidt over, hvordan det virkede. Her er min forklaring:
1. Udskriver ‘wait’, fordi funktionen virker på arrayet ‘words’, som ikke er sorteret. Det sorterede array hedder ‘sorted_words’.
2. ‘Words’ arrayet har fået forskudt den første og sidste (“all” og “wait” ) værdi væk i printfunktionen.
3. Kalder på ‘sorted_words’ arrayet, ikke på ‘words’ arrayet, som har de manglende værdier. Derfor er ‘all’ stadigvæk i arrayet.
4….Som om der mangler noget i billedet … Så jeg vurderede klart, at det var irrelevant dengang, derfor vil jeg gøre det samme igen nu..
5. Ved at bruge den oprindelige “sentence”-variabel og sende denne gennem funktionen. Den opdeler denne sætningsvariabel i et array, hver gang den støder på et mellemrum. Derefter bruger den funktionen Ex25.sort_words til at sortere dette array af ord.
6. Den tager den oprindelige variabel ‘sentence’, bryder den op i et array af ord og udskriver derefter den første og sidste værdi i dette array.
Så er vi nu kommet til slutningen af min kamp med øvelse 25 i Learn Ruby the Hard way. Jeg håber, at du har nydt og fundet min higgledy piggldy problemløsning nyttig, som til sidst resulterede i, at jeg overvandt de fejlmeddelelser, der blev givet ved at køre mit script. Kontakt mig endelig, hvis du ved et lille tilfælde læser dette & har brug for hjælp til at forstå det.
Nyd det, 🙂
Dette indlæg blev oprindeligt offentliggjort HER.