Kuidas lahendada "määratlemata kohaliku muutuja" rubiiniviga

Sisse Rubiin, ei pea te muutujaid deklareerima, vaid peate neile midagi määrama, enne kui neile saab viidata.

Kui viitate a kohalik muutuja mida veel pole, võite näha ühte kahest veast.

Rubiini nime tõrketeated

NameError: määratlemata lokaalne muutuja või meetod `a 'jaoks # 
NameError: määratlemata kohalik muutuja või meetod "a" peamiseks: objekt

Märge: Selle asemel võib olla mitu identifikaatorit 'a' ülalpool.

See on näide, kus kood genereerib muutujast alates Ruby "NameError" teate a pole veel millelegi määratud:

paneb a

Kuidas viga parandada

Muutujad tuleb kasutada enne nende kasutamist. Nii et ülaloleva näite abil on vea parandamine sama lihtne kui seda teha:

a = 10. paneb a. 

Miks teile see viga kuvatakse?

Ilmne vastus on see, et viitate muutujale, mida pole veel loodud. Enamasti on selle põhjuseks kirjavigu, kuid see võib juhtuda koodi ümberreaktoriseerimisel ja muutujate ümbernimetamisel.

Kui soovite sisestada stringi, võidakse näha ka rubriigi viga „NameError: undefined local muutuja”. Stringe mõistetakse siis, kui need on jutumärkide vahel olemas. Kui te ei kasutanud jutumärke, arvab Ruby, et mõtlesite viidata meetodile või muutujale (seda pole olemas) ja viskab vea.

instagram viewer

Niisiis, vaadake oma koodile tagasi, et näha, millele see muutuja peaks viitama, ja parandage see. Võib-olla soovite otsida sama meetodi abil ka teisi sama muutuja nime esinemisjuhte - kui see on ühes kohas vale, võib see teistes vale olla.

instagram story viewer