Constantes Una constante es una referencia inmutable a un objeto; mientras que las variables sí se podían. Las constantes se crean cuando son asignadas por primera vez. En la actual versión de Ruby, reasignar una constante (intentar cambiar su valor) genera una advertencia, pero no un error.
Las constantes se ponen en mayúsculas:
CONST = 10
CONST = 20
::
precedido de una palabra que indique el módulo o clase apropiados.::
pero sin palabra que lo preceda.CONST_EXTERNA = 99
class Const
CONST = CONST_EXTERNA + 1
def get_const
CONST
end
end
puts Const.new.get_const # 100
puts Const::CONST # constante dentro de la clase Const
puts ::CONST_EXTERNA # constante externa a toda clase
puts Const::NEW_CONST = 123
# los nombres de las variables y métodos empiezan por minúsculas
$glob = 5 # las variables globales empiezan por $
class TestVar # nombre de clase, empieza por mayúsculas
@@cla = 6 # las variables de clase empiezan por @@
CONST_VAL = 7 # constante: todo mayúsculas y/o _
def initialize(x) # constructor
@inst = x # variables de objeto empiezan por @
@@cla += 1 # cada objeto comparte @@cla
end
def self.cla # método de clase, lector de atributo
@@cla
end
def self.cla=(y) # método de clase, modificador de atributo"0@%0 @@cla = y
end
def inst # método de objeto, lector
@inst
end
def inst=(i) # método de objeto, modificador
@inst = i
end
end
puts $glob
test = TestVar.new(3)
puts test.inspect # da el ID del objeto y sus variables
TestVar.cla = 4
test.inst=8
puts test.inst
puts TestVar.cla
otro = TestVar.new(17)
# 'cla' se modifica cada vez
# que se crea un objeto
puts TestVar.cla
puts otro.inspect