Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

265
Views
Exportación de variables en Ruby

Soy nuevo en Ruby, ¿podría explicarme una cosa? Aquí está mi archivo de código:

 class You def method puts "are the best" end end CONST = "const value" var = "var value"

Lo requiero en otro archivo o irb . Después de eso, puedo acceder a todos los nombres declarados excepto var . Según tengo entendido, Ruby distingue las constantes de las variables escribiendo en mayúsculas. Pero, ¿por qué no se exportan las variables?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

De hecho, no hay declaraciones de alto nivel en Ruby. Toda la ejecución se realiza en el contexto de la clase Object (que también es una clase base para cada clase en Ruby), por lo que cada declaración de nivel superior también es un miembro privado de la clase Object . Las variables de instancia tienen un prefijo de arroba ( @ ), por lo que su variable var ni siquiera es una variable de instancia, es solo local, a la que no se puede acceder fuera de su alcance. Además, las variables de instancia en Ruby también son siempre privadas.

En su lugar, puede convertirla en una variable de instancia y definir getter y (opcionalmente) setter para ella:

 # file.rb @var = "var value" def var @var end def var=(val) @var = val end

Y luego:

 $ irb -r ./file.rb irb(main):001:0> var => "var value" irb(main):002:0> var = "another var value" => "another var value" irb(main):003:0> var => "another var value"
over 4 years ago · Santiago Trujillo Report

0

Las variables locales no se exportan porque así es como se documenta el funcionamiento de require :

Cualquier constante o global dentro del archivo de origen cargado estará disponible en el espacio de nombres global del programa de llamada. Sin embargo, las variables locales no se propagarán al entorno de carga.

Constantes (incluido You en class You ) y tienen un alcance global porque eso es lo que generalmente desea en ausencia de un mecanismo de exportación explícito.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!