Ištaisykite „Ruby“ klaidą „NameError: undefined local variable“.

Jei nurodote neegzistuojančius kintamuosius, pamatysite tokią klaidą

Klaidos pranešimo paveikslėlis kompiuterio ekrane

Epoxydude / Getty Images





ĮRubinas, jūs neprivalote deklaruoti kintamųjų, bet turite jiems ką nors priskirti, kad būtų galima į juos kreiptis.

Jei kalbate apie a vietinis kintamasis kurios dar nėra, galite matyti vieną iš dviejų klaidų.

Rubino vardo klaidos pranešimai

|_+_| |_+_|

Pastaba: Vietoje gali būti įvairių identifikatorių 'a' aukščiau.

Tai pavyzdys, kai kodas generuos Ruby pranešimą „NameError“ nuo kintamojo a dar niekam nepriskirta:

|_+_|

Kaip ištaisyti klaidą

Kintamieji turi būti priskirti prieš juos naudojant. Taigi, naudojant aukščiau pateiktą pavyzdį, klaidą ištaisyti taip paprasta, kaip tai padaryti:

|_+_|

Kodėl gaunate šią klaidą

Akivaizdus atsakymas yra tas, kad jūs kalbate apie kintamąjį, kuris dar nebuvo sukurtas. Dažniausiai taip nutinka dėl rašybos klaidos, bet gali nutikti keičiant kodą ir pervardijant kintamuosius.

Jei ketinote įvesti eilutę, taip pat galite matyti Ruby klaidą „NameError: undefined local variable“. Stygos suprantamos, kai jos yra tarp kabučių. Jei nenaudojote kabučių, Ruby manys, kad norėjote nurodyti metodą arba kintamąjį (kurio nėra) ir išmes klaidą.

Taigi, peržiūrėkite savo kodą, kad pamatytumėte, ką šis kintamasis turėtų nurodyti, ir pataisykite. Taip pat galite ieškoti kitų to paties kintamojo pavadinimo egzempliorių tuo pačiu metodu – jei jis neteisingas vienoje vietoje, jis gali būti neteisingas ir kitose.