Hem Personliga finanser Syntaxfel i Ruby - Dummies

Syntaxfel i Ruby - Dummies

Video: SHRUG: Automating your infrastructure with (tools written in) Ruby by Lowe Schmidt 2024

Video: SHRUG: Automating your infrastructure with (tools written in) Ruby by Lowe Schmidt 2024
Anonim

Ruby försöker vara till hjälp när någon del av ditt program har ett typsnitt eller gör något oväntat. Ruby visar ett varningsmeddelande eller ett felmeddelande, ofta med information om var den hittade problemet i din kod.

Till exempel, om du av misstag gjorde ett typsnitt när du gjorde lite enkel matte, skulle Ruby säga att du har ett syntaxfel.

Syntax är som grammatik på engelska. Ett programmeringsspråks syntax är strukturen, ordningen och stavningen av kommandon och uttalanden på det språket.

Om du gör ett avsiktligt stavfel:

2. 2. 2: 036> 3j + 3 SyntaxError: (irb): 36: Syntaxfel, oväntad TIDENTIFIER, förväntar slut-av-ingång 3j + 3 ^ från / usr / bin / irb: 11: i & 
N';

Du menade inte att skriva bokstaven j efter nummer 3 och till skillnad från vad du kan skriva i skolan när du lär dig algebra, är denna syntax inte giltig Ruby.

Ruby visar ett felmeddelande som är lite kryptiskt, men om du ser syntaxfel och ett radnummer eller en plats, ger det dig en plats att börja undersöka vad som gick fel. I detta fall visade Ruby den felaktiga raden med en liten pilsymbol som pekade på den punkt som det trodde var fel. Tack Ruby!

Vad händer när du försöker få Ruby att visa en googolplex? En googol är en rolig term som betyder 10 upp till 100: e kraften. A googolplex är 1 följt av googol (10 100 ) nollor. Den amerikanska matematikern Edward Kasners 9-årige brorson Milton Sirotta antog antagligen termen och definierade den som siffran "en, följt av att skriva nollor tills du blir trött. "

I Interactive Ruby (IRB), lagra en googol i en variabel som heter googol:

2. 2. 2: 030> googol = 10 ** 100 => 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Försök nu höja 10 med en googol:

2. 2. 2: 031> 10 ** googol (irb): 31: varning: i en ** b kan b vara för stor => Infinity

Det finns några gränser för Rubys matematiska färdigheter. Här visar Ruby dig en varning om att det kommando du bara har skrivit inte fungerar eftersom en del av beräkningen är för stor. Det visar resultaten som Infinity, som verkar om rätt.

Se om Ruby kan hitta ett annat problem:

2. 2. 2: 037> x + 5 NameError: odefinierad lokal variabel eller metod & x N'; för huvud: Objekt från (irb): 37 från / usr / bin / irb: 11: i & 
N';

I det här fallet försökte du använda en variabel som du inte har lagrat något i. Ruby vet inte vad man ska göra här, eftersom det inte kan hitta en variabel som heter x (ännu).Du ser ofta detta fel om du skriver ett typsnitt i namnet på en variabel (eller metod). Kontrollera din stavning och försök igen.

Ett annat vanligt Ruby-fel kan ses med den här koden:

2. 2. 2: 038> x = nil => nil 2. 2. 2: 039> x + 5 NoMethodError: odefinierad metod & + N'; för noll: NilClass från (irb): 39 från / usr / bin / irb: 11: i & 
N';

Du kan tänka på nil som Rubys sätt att representera "ingenting". "Felet Ruby visar betyder att det inte vet hur man gör tillägg med noll, vilket verkar rimligt. I din kod betyder det förmodligen att du förväntas få resultat från någon annan del av programmet, men koden returnerade ingenting.

Ett sista problem som du ibland ser är om du försöker göra något med oförenliga data:

2. 2. 2: 040> x = "a" => "a" 2. 2. 2: 041> x + 5 TypeError: ingen implicit konvertering av Fixnum till String från (irb): 41: i & + N'; från (irb): 41 från / usr / bin / irb: 11: i & 
N';

Bokstaven a är tilldelad variabel x. Här försökte du dock lägga till nummer 5 till bokstaven a. Det är uppenbart att det här är nonsens. Ruby tror det också, och berättar att det inte kan konvertera data på ett sätt för att få det att fungera.

Du kommer förmodligen att gå in i syntaxfel oftast, eftersom skrivfel är de enklaste buggarna att göra. När du ser ett felmeddelande är din bästa åtgärd att noga jämföra vad du skrev med ditt projektets kod.

Syntaxfel i Ruby - Dummies

Redaktörens val

Hur man justerar inställningar för din bakgrund i Gamestar Mechanic - dummies

Hur man justerar inställningar för din bakgrund i Gamestar Mechanic - dummies

När du har lagt till en Bakgrund till ditt spel kan du ytterligare anpassa bakgrunden i Gamestar Mechanic genom att använda två ytterligare alternativ i dialogrutan Nivåinställningar: Bakgrundsrullning och Bakgrundsstil. Bakgrundsrullning Parallaxen är en viktig egenskap hos bakgrunden i spel där alternativet Fler skärm är valt. Redigerbar ...

Hur man balanserar svårigheten hos ett Gamestar Mechanic Game - dummies

Hur man balanserar svårigheten hos ett Gamestar Mechanic Game - dummies

Det vanligaste exemplet på balansering ett spel i Gamestar Mechanic balanserar svårigheten: Gör inte spelet så lätt att det är tråkigt och gör det inte så svårt att det är frustrerande. För att finjustera spelets svårighet måste du göra små förändringar utan att bli förbunden till ...

För att kalibrera accelerometern för ditt HTML5-spel - dummies

För att kalibrera accelerometern för ditt HTML5-spel - dummies

Som standard antar HTML5-spelaccelerometern Det neutrala läget är perfekt horisontellt - det vill säga enheten ligger platt på ett bord. Men det här är mobila enheter, och spelare vill ofta ha det neutrala stället att vara någon annanstans. Grundläggande tekniken för att kalibrera tiltkontrollen är att hålla koll på en ...

Redaktörens val

Gör äta rena förändringar i livet - dummies

Gör äta rena förändringar i livet - dummies

Rena ätförändringar i ditt liv är inte svåra att göra, men de tar lite gumption, uthållighet och övning. När du gör en koncentrerad insats för att äta lägre på livsmedelskedjan, märka hur detta beslut påverkar andra delar av ditt liv. För att vara framgångsrik måste du tänka på mat och äta annorlunda, vilka ...

Köttfri måndag och hållbarhet - dummies

Köttfri måndag och hållbarhet - dummies

Köttfri måndag är ett ganska nytt koncept som ofta nämns på Facebook och Twitter. Allt det betyder är att en dag i veckan väljer du att äta vegetarian eller vegan. Inte bara kan Meatless Monday spara pengar (eftersom kött är dyrt), men planen hjälper miljön (eftersom stora kött-, fläsk- och kycklingsanläggningar skapar nitrat ...

5 Hälsofördelar Kopplade till Medelhavsdiet - dummies

5 Hälsofördelar Kopplade till Medelhavsdiet - dummies

Medelhavsdieten har länge varit prydnad för vilket ger hälsoeffekter, såsom att minska kranskärlssjukdom och minska risken för vissa cancerformer. Inklusive färska grönsaker och frukter, baljväxter och hälsosamma fetter i din kost kan hjälpa dig att förbättra din hälsa på många sätt. Forskning visar att en traditionell medelhavsdiet minskar ...

Redaktörens val

Hur man arbetar med Nikon D3300-minneskort - dummies

Hur man arbetar med Nikon D3300-minneskort - dummies

Som mediet som lagrar dina bildfiler , Nikon D3300s minneskort är en viktig del av din kamera. Följ dessa tips för att köpa och behålla kort: Köpkort: När du handlar för ett SD-minneskort är den enda specifikationen som noterar annat än kortkapaciteten kort hastighet, vilket indikerar hur snabbt data ...

Timerfotografering: Nikon D5200-dummies med Nikon D5200

Timerfotografering: Nikon D5200-dummies med Nikon D5200

Med intervall Timer Fotografering på Nikon D5200, du kan ställa in kameran för att automatiskt släppa avtryckaren med intervall som sträcker sig från sekunder till timmar från varandra. Med den här funktionen kan du fånga upp ett ämne eftersom det förändras över tiden - en teknik som är känd som fotografering med tidsfördröjning - utan att behöva stå runt på ...

JPEG Filer på Nikon D3300-dummies

JPEG Filer på Nikon D3300-dummies

Uttalad "jay-peg", det här formatet är standardinställningen på din Nikon D3300, som det är på de flesta digitalkameror. JPEG är populär av två huvudorsaker: Omedelbar användbarhet: Alla webbläsare och e-postprogram kan visa JPEG-filer, så att du kan dela bilder online direkt efter att du har tagit dem. Du kan också få en ...