Как да разрешите грешка на Ruby "неопределена локална променлива"

click fraud protection

в рубин, не е нужно да декларирате променливи, но трябва да им присвоите нещо, преди да могат да бъдат препращани.

Ако имате предвид а локална променлива която все още не съществува, може да видите една от две грешки.

Ruby NameError Съобщения

NameError: неопределена локална променлива или метод `a 'за # 
NameError: неопределена локална променлива или метод `a 'за main: Object

Забележка: На мястото може да има различни идентификатори "А" по-горе.

Това е пример, при който кодът ще генерира Ruby "NameError" съобщение от променливата а все още не е назначен за нищо:

поставя a

Как да поправим грешката

Променливите трябва да бъдат зададени, преди да могат да бъдат използвани. Така че, използвайки примера отгоре, поправянето на грешката е толкова просто, колкото да направите това:

a = 10. поставя a. 

Защо получавате тази грешка

Очевидният отговор е, че имате предвид променлива, която все още не е създадена. Това най-често се дължи на печатна грешка, но може да се случи при рефакторинг на код и преименуване на променливи.

instagram viewer

Може да видите и „NameError: неопределена локална променлива“ Ruby грешка, ако възнамерявате да въведете низ. Струните се разбират, когато съществуват между кавички. Ако не сте използвали кавички, Ruby ще мисли, че сте имали предвид да посочите метод или променлива (която не съществува) и ще хвърли грешката.

Така че, погледнете назад кода си, за да видите на какво се отнася тази променлива, и я поправете. Можете също така да искате да потърсите други инстанции със същото име на променлива в същия метод - ако греши на едно място, може да е грешно в други.

instagram story viewer