|
|
一个常量由大写字母开头.它应最多被赋值一次.在Ruby的当前版本中,常量的再赋值只会产生警告而不是错误(non-ANSI版的eval.rb不会报告这一警告)
ruby>fluid=30 30 ruby>fluid=31 31 ruby>Solid=32 32 ruby>Solid=33 (eval):1: warning: already initialized constant Solid 33 |
常量可以定义在类里,但不像实变量,它们可以在类的外部访问.
ruby> class ConstClass | C1=101 | C2=102 | C3=103 | def show | print C1," ",C2," ",C3,"\n" | end | end nil ruby> C1 ERR: (eval):1: uninitialized constant C1 ruby> ConstClass::C1 101 ruby> ConstClass.new.show 101 102 103 nil |
常量也可以定义在模块里.
ruby> module ConstModule | C1=101 | C2=102 | C3=103 | def showConstants | print C1," ",C2," ",C3,"\n" | end | 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 # not really a good idea 99 ruby> C1 99 ruby> ConstModule::C1 # the module's constant is undisturbed ... 101 ruby> ConstModule::C1=99 ERR: (eval):1: compile error (eval):1: parse error ConstModule::C1=99 ^ ruby> ConstModule::C1 # .. regardless of how we tamper with it. 101 | |
|
版权声明:RUBY文档中心的所有文章标明[原创]的均为本站作品,版权属RUBY中文化计划,若转载请注明;标明[翻译]的其外文版权归原作者,译文版权属RUBY中文化计划;标明[转贴]的,若原作者感到侵犯了他的著作权,那么请及时跟主持人联系,我们会尽快更正。 | |
|