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.
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é.