Odpravite napako Ruby 'NameError: nedefinirana lokalna spremenljivka'

Če se sklicujete na neobstoječe spremenljivke, boste videli takšno napako

Slika sporočila o napaki na računalniškem zaslonu

Epoxydude/Getty Images





notriRuby, spremenljivk vam ni treba deklarirati, vendar jim morate nekaj dodeliti, preden se lahko nanje sklicujete.

Če se sklicujete na a lokalna spremenljivka ki še ne obstaja, boste morda videli eno od dveh napak.

Sporočila o napakah imena Ruby

|_+_| |_+_|

Opomba: Namesto tega so lahko različni identifikatorji 'a' zgoraj.

To je primer, kjer bo koda ustvarila sporočilo Ruby 'NameError' od spremenljivke a še ni bilo dodeljeno ničemur:

|_+_|

Kako odpraviti napako

Spremenljivke je treba dodeliti, preden jih je mogoče uporabiti. Torej je z uporabo zgornjega primera odpravljanje napake tako preprosto, kot to:

|_+_|

Zakaj se vam prikazuje ta napaka

Očiten odgovor je, da se sklicujete na spremenljivko, ki še ni bila ustvarjena. Najpogosteje je to posledica tipkarske napake, vendar se lahko zgodi pri preoblikovanju kode in preimenovanju spremenljivk.

Morda boste videli tudi napako Ruby 'NameError: nedefinirana lokalna spremenljivka', če ste nameravali vnesti niz. Nizi se razumejo, če obstajajo med narekovaji. Če niste uporabili narekovajev, bo Ruby mislil, da ste se želeli sklicevati na metodo ali spremenljivko (ki ne obstaja) in izdal napako.

Torej, poglejte svojo kodo nazaj, da vidite, na kaj naj bi se ta spremenljivka nanašala, in jo popravite. Morda boste želeli poiskati tudi druge primere istega imena spremenljivke v isti metodi - če je napačno na enem mestu, je morda napačno na drugih.