Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

262
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda