Hvordan løse en "udefinert lokal variabel" Ruby Error

I Rubin, trenger du ikke å erklære variabler, men du må tildele dem noe før de kan henvises til.

Hvis du viser til en lokal variabel som ikke eksisterer ennå, kan du se en av to feil.

Ruby NameError-meldinger

NameError: udefinert lokal variabel eller metode `a 'for # 
NameError: udefinert lokal variabel eller metode `a 'for main: Object

Merk: Det kan være forskjellige identifikatorer i stedet for 'en' ovenfor.

Dette er et eksempel der koden vil generere Ruby "NameError" -meldingen siden variabelen en har ennå ikke blitt tildelt noe:

setter en

Slik løser du feilen

Variabler må tilordnes før de kan brukes. Så å bruke eksemplet ovenfra, å fikse feilen er så enkelt som å gjøre dette:

a = 10. setter en. 

Hvorfor du får denne feilen

Det åpenbare svaret er at du viser til en variabel som ennå ikke er opprettet. Dette skyldes ofte en skrivefeil, men kan skje når du refakturerer kode og gir nytt navn til variabler.

Du kan også se Ruby-feilen "NameError: undefined local variabel" hvis du hadde tenkt å legge inn en streng. Strenger forstås når de eksisterer mellom sitater. Hvis du ikke brukte anførselstegn, vil Ruby tro at du mente å referere til en metode eller variabel (som ikke eksisterer) og kaste feilen.

instagram viewer

Så, se tilbake på koden din for å se hva denne variabelen skal referere til, og fikse den. Det kan også være lurt å søke etter andre forekomster av samme variabelnavn på samme metode - hvis det er galt et sted, kan det være galt på andre.

instagram story viewer