+54 911 66509220

Blog

4 Mar 2015

Tutorial de Ruby – Parte 26 – Constantes

/
Creado por
/
Comentarios0

Una constante tiene un nombre que comienza con una letra mayúscula. Se le debe asignar valor sólo una vez. En la implementación actual de Ruby, reasignar un valor a una constante genera un aviso y no un error (la versión no ANSI de eval.rb no informa de este aviso):

 

ruby> fluid = 30

30

ruby> fluid = 31

31

ruby> Solid = 32

32

ruby> Solid = 33

(eval):1: warning: already initialized constant Solid

33

 

Las constantes se pueden definir en una clase, pero a diferencia de las variables de instancia, son accesibles desde el exterior de la misma.

 

ruby> class ConstClass

ruby| C1=101

ruby| C2=102

ruby| C3=103

ruby| def show

ruby| print C1,” “,C2, ” “,C3,”\n”

ruby| end

ruby| end

nil

ruby> C1

ERR: (eval):1: uninitialized constant C1

ruby> ConstClass::C1

101

ruby> ConstClass.new.show

101 102 103

nil

 

Las constantes también se pueden definir en un módulo.

 

ruby> class ConstClass

ruby| C1=101

ruby| C2=102

ruby| C3=103

ruby| def show

ruby| print C1,” “,C2, ” “,C3,”\n”

ruby| end

ruby| end

nil

ruby> C1

ERR: (eval):1: uninitialized constant C1

ruby> ConstClass::C1

101

ruby> ConstClass.new.show

101 102 103

nil

 

Las constantes también se pueden definir en un módulo.

ruby> module ConstModule

ruby| C1=101

ruby| C2=102

ruby| C3=103

ruby| def showConstants

ruby| print C1,” “,C2,” “,C3,”\n”

ruby| end

ruby| end

nil

ruby> C1

ERR: (eval):1: uninitialized constant C1

 

ruby> include ConstModule

Object

ruby> C1

101

ruby> showConstants

101 102 103

nil

ruby> C1=99 # realmente una idea no muy buena

99

ruby> C1

99

ruby> ConstModule::C1 # La constante del módulo queda sin tocar …

101

ruby> ConstModule::C1=99

ERR: (eval):1: compile error

(eval):1: parse error

ConstModule::C1=99

^

ruby> ConstModule::C1 #… independientemente de lo que hayamos jugado con ella

101

 

Leave a Reply

Your email address will not be published.

* Copy This Password *

* Type Or Paste Password Here *

28,395 Spam Comments Blocked so far by Spam Free Wordpress

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.