Sådan løses en "udefineret lokal variabel" Ruby Error

I Rubin, behøver du ikke at erklære variabler, men du skal tildele dem noget før de kan henvises til.

Hvis du henviser til en lokal variabel der ikke findes endnu, kan du se en af ​​to fejl.

Ruby NameError-meddelelser

NameError: udefineret lokal variabel eller metode `a 'til # 
NameError: udefineret lokal variabel eller metode 'a' til main: Object

Bemærk: Der kan være forskellige identifikatorer i stedet for 'en' over.

Dette er et eksempel, hvor koden genererer meddelelsen Ruby "NameError" siden variablen -en er endnu ikke blevet tildelt noget:

sætter en

Sådan rettes fejlen

Variabler skal tildeles, før de kan bruges. Så ved hjælp af eksemplet ovenfra er rettelse af fejlen så simpelt som at gøre dette:

a = 10. sætter en. 

Hvorfor du får denne fejl

Det åbenlyse svar er, at du henviser til en variabel, der endnu ikke er oprettet. Dette skyldes oftest en skrivefejl, men kan ske, når man refaktorificerer kode og omdøber variabler.

Du kan muligvis også se "NameError: udefineret lokal variabel" Rubin-fejl, hvis du havde til hensigt at indtaste en streng. Strenge forstås, når de findes mellem citater. Hvis du ikke brugte citater, vil Ruby tro, at du mente at henvise til en metode eller variabel (der ikke findes) og kaste fejlen.

instagram viewer

Så se tilbage på din kode for at se, hvad denne variabel skal referere til, og rett den. Det kan også være en god ide at søge efter andre forekomster med det samme variabelnavn på samme metode - hvis det er forkert et sted, kan det være forkert i andre.

instagram story viewer