Kako rešiti napako Ruby "nedefinirana lokalna spremenljivka"

V Ruby, spremenljivk vam ni treba prijaviti, vendar jim morate nekaj dodeliti, preden jih lahko napotite.

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

Ruby sporočila o napaki

NameError: nedefinirana lokalna spremenljivka ali metoda `a 'za # 
NameError: nedefinirana lokalna spremenljivka ali metoda `a 'za main: Objekt

Opomba: Namesto njih lahko obstajajo različni identifikatorji 'a' nad.

To je primer, ko bo koda ustvarila sporočilo Ruby "NameError" od spremenljivke a še ni dodeljen nič:

postavlja a

Kako popraviti napako

Pred uporabo jih je treba dodeliti spremenljivkam. Torej, s primerom zgoraj, je odpravljanje napake tako enostavno, kot to storite:

a = 10. postavlja a. 

Zakaj ste dobili to napako?

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

Morda boste videli tudi napako "NameError: nedefinirana lokalna spremenljivka", če želite namestiti niz. Strune se razumejo, kadar obstajajo med narekovaji. Če niste uporabili narekovajev, bo Ruby mislil, da ste mislili na sklicevanje na metodo ali spremenljivko (ki ne obstaja) in vrgel napako.

instagram viewer

Torej, poglejte nazaj svojo kodo in si oglejte, na kaj naj se nanaša ta spremenljivka, in jo popravite. Morda boste želeli iskati tudi druge primerke istega imena spremenljivke v isti metodi - če je napačno na enem mestu, je v drugih napačno.

instagram story viewer