39 votes

La variable locale Ruby n'est pas définie

J'ai le code Ruby suivant :

local_var = "Hello"

def hello
  puts local_var
end

hello

Je reçois l'erreur suivante :

local_variables.rb:4:in 'hello': undefined local variable or method 'local_var' 
for main:Object (NameError) from local_variables.rb:7:in '<main>'

J'ai toujours pensé que les variables locales ne sont pas accessibles depuis l'extérieur du bloc, de la fonction, de la fermeture, etc.

Mais maintenant, j'ai défini la variable locale dans le fichier et j'essaie d'obtenir un accès à partir de la fonction À L'INTÉRIEUR du même fichier.

Qu'est-ce qui ne va pas avec ma compréhension ?

-7voto

Jörg W Mittag Points 153275

local_var est une variable locale. Les variables locales sont locales à la portée dans laquelle elles sont définies. (C'est pourquoi on les appelle "variables locales", après tout !) Donc, évidemment, puisque local_var est défini dans le champ d'application du script, vous ne pouvez pas y accéder dans le champ d'application de la méthode.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X