Ako vyriešiť "nedefinovanú lokálnu premennú" Ruby Error

v rubín, nemusíte deklarovať premenné, ale skôr, ako sa na ne dá odkazovať, musíte im niečo priradiť.

Ak máte na mysli a lokálna premenná ktorá ešte neexistuje, môže sa zobraziť jedna z dvoch chýb.

Ruby NameError Správy

NameError: nedefinovaná lokálna premenná alebo metóda `a 'pre # 
NameError: nedefinovaná lokálna premenná alebo metóda `a 'pre main: Object

Poznámka: Namiesto nich by mohli byť rôzne identifikátory 'A' vyššie.

Toto je príklad, kde kód vygeneruje správu Ruby „NameError“ od premennej zatiaľ nič nebolo priradené:

kladie a

Ako opraviť chybu

Predtým, ako sa dajú použiť, musia byť priradené premenné. Pri použití vyššie uvedeného príkladu je teda opravenie chyby také jednoduché ako to:

a = 10. kladie a. 

Prečo sa zobrazuje táto chyba

Zrejmá odpoveď je, že hovoríte o premennej, ktorá ešte nebola vytvorená. Toto je najčastejšie kvôli preklepu, ale môže sa to stať pri refaktoringu kódu a premenovaní premenných.

Ak ste chceli zadať reťazec, môže sa zobraziť aj chyba Ruby „NameError: undefined local variable“. Reťazce sa chápu, keď existujú medzi úvodzovkami. Ak ste nepoužívali úvodzovky, Ruby si bude myslieť, že ste chceli odkazovať na metódu alebo premennú (ktorá neexistuje) a vyhodiť chybu.

instagram viewer

Obráťte sa teda na svoj kód a zistite, na čo sa má táto premenná odvolávať, a opravte ju. Možno budete chcieť vyhľadať rovnakou metódou aj iné prípady s rovnakým názvom premennej - ak je to na jednom mieste nesprávne, na iných to môže byť nesprávne.