Hoe een Ruby-fout "ongedefinieerde lokale variabele" op te lossen

In Robijn, je hoeft geen variabelen te declareren, maar je moet er wel iets aan toewijzen voordat er naar verwezen kan worden.

Als je verwijst naar een lokale variabele die nog niet bestaat, ziet u mogelijk een van de twee fouten.

Ruby NameError Messages

NameError: ongedefinieerde lokale variabele of methode `a 'voor # 
NameError: ongedefinieerde lokale variabele of methode `a 'voor main: Object

Notitie: Er kunnen verschillende ID's zijn in plaats van 'een' bovenstaand.

Dit is een voorbeeld waarbij de code het Ruby "NameError" -bericht genereert sinds de variabele een is nog niet aan iets toegewezen:

zet een

Hoe de fout op te lossen

Variabelen moeten worden toegewezen voordat ze kunnen worden gebruikt. Dus, met behulp van het voorbeeld van hierboven, is het oplossen van de fout net zo eenvoudig als dit doen:

a = 10. zet een. 

Waarom krijg je deze foutmelding?

Het voor de hand liggende antwoord is dat u verwijst naar een variabele die nog niet is gemaakt. Dit komt meestal door een typefout, maar kan optreden bij het refactoreren van code en het hernoemen van variabelen.

instagram viewer

Mogelijk ziet u ook de Ruby-fout 'NameError: undefined local variable' als u van plan was een tekenreeks in te voeren. Tekenreeksen worden begrepen wanneer ze tussen aanhalingstekens staan. Als je geen aanhalingstekens hebt gebruikt, zal Ruby denken dat je bedoelde om naar een methode of variabele te verwijzen (die niet bestaat) en de fout te gooien.

Kijk dus terug naar uw code om te zien waar deze variabele naar verwijst en repareer deze. Mogelijk wilt u ook op dezelfde manier zoeken naar andere instanties met dezelfde variabelenaam - als het op de ene plaats fout is, kan het op de andere fout zijn.

instagram story viewer