Come risolvere un errore Ruby "variabile locale non definita"

Nel Rubino, non è necessario dichiarare le variabili, ma è necessario assegnare loro qualcosa prima di poter fare riferimento.

Se ti riferisci a variabile locale che non esiste ancora, potresti vedere uno dei due errori.

Nome Ruby Messaggi di errore

NameError: variabile locale non definita o metodo `a 'per # 
NameError: variabile locale non definita o metodo `a 'per main: Object

Nota: Potrebbero esserci vari identificatori al posto di 'un' sopra.

Questo è un esempio in cui il codice genererà il messaggio "NameError" di Ruby dalla variabile un' non è stato ancora assegnato a nulla:

mette a

Come risolvere l'errore

Le variabili devono essere assegnate prima di poter essere utilizzate. Quindi, usando l'esempio dall'alto, correggere l'errore è semplice come fare questo:

a = 10. mette a. 

Perché stai ricevendo questo errore

La risposta ovvia è che ti riferisci a una variabile che non è stata ancora creata. Ciò è spesso dovuto a un errore di battitura, ma può verificarsi durante il refactoring del codice e la ridenominazione delle variabili.

instagram viewer

Potresti anche vedere l'errore "NameError: variabile locale non definita" se intendi inserire una stringa. Le stringhe sono comprese quando esistono tra virgolette. Se non hai utilizzato le virgolette, Ruby penserà che intendevi fare riferimento a un metodo o a una variabile (che non esiste) e genera l'errore.

Quindi, guarda indietro sul tuo codice per vedere a cosa si suppone si riferisca questa variabile e correggilo. Puoi anche cercare altre istanze con lo stesso nome di variabile nello stesso metodo: se è errato in un posto, potrebbe essere sbagliato in altri.

instagram story viewer