Jak vyřešit "nedefinovanou lokální proměnnou" Ruby Error

click fraud protection

v Rubín, nemusíte deklarovat proměnné, ale musíte jim před přiřazením něco přiřadit.

Pokud máte na mysli a lokální proměnná to ještě neexistuje, můžete vidět jednu ze dvou chyb.

Ruby NameError Zprávy

NameError: nedefinovaná lokální proměnná nebo metoda `a 'pro # 
NameError: nedefinovaná lokální proměnná nebo metoda `a 'pro main: Object

Poznámka: Mohou existovat různé identifikátory místo 'A' výše.

Toto je příklad, kdy kód vygeneruje zprávu Ruby "NameError" od proměnné A zatím nic nebylo přiřazeno:

klade

Jak opravit chybu

Proměnné musí být přiřazeny před jejich použitím. Takže pomocí příkladu shora je oprava chyby stejně jednoduchá jako v tomto:

a = 10. klade 

Proč se vám zobrazuje tato chyba

Zřejmou odpovědí je, že máte na mysli proměnnou, která ještě nebyla vytvořena. To je nejčastěji způsobeno překlepem, ale může k tomu dojít při refaktorování kódu a přejmenování proměnných.

Pokud jste chtěli zadat řetězec, může se také zobrazit chyba Ruby „NameError: undefined local variable“. Řetězce jsou chápány, když existují mezi uvozovkami. Pokud jste nepoužívali uvozovky, Ruby si bude myslet, že jste chtěli odkazovat na metodu nebo proměnnou (která neexistuje) a vyhodit chybu.

instagram viewer

Podívejte se tedy zpět na svůj kód a zjistěte, na co se tato proměnná má odkazovat, a opravte ji. Možná budete také chtít hledat jiné instance se stejným názvem proměnné stejnou metodou - pokud je to na jednom místě špatné, na jiných může být špatné.

instagram story viewer