ruby 类常量 解析

时间:2021-05-22

一个常量由大写字母开头.它应最多被赋值一次.在Ruby的当前版本中,常量的再赋值只会产生警告而不是错误(non-ANSI版的eval.rb不会报告这一警告)

ruby>fluid=30
30
ruby>fluid=31
31
ruby>Solid=32
32
ruby>Solid=33
(eval):1:warning:alreadyinitializedconstantSolid
33


常量可以定义在类里,但不像实变量,它们可以在类的外部访问.

ruby>classConstClass
|C1=101
|C2=102
|C3=103
|defshow
|printC1,"",C2,"",C3,"\n"
|end
|end
nil
ruby>C1
ERR:(eval):1:uninitializedconstantC1
ruby>ConstClass::C1
101
ruby>ConstClass.new.show
101102103
nil


常量也可以定义在模块里.

ruby>moduleConstModule
|C1=101
|C2=102
|C3=103
|defshowConstants
|printC1,"",C2,"",C3,"\n"
|end
|end
nil
ruby>C1
ERR:(eval):1:uninitializedconstantC1
ruby>includeConstModule
Object
ruby>C1
101
ruby>showConstants
101102103
nil
ruby>C1=99#notreallyagoodidea
99
ruby>C1
99
ruby>ConstModule::C1#themodule'sconstantisundisturbed...
101
ruby>ConstModule::C1=99
ERR:(eval):1:compileerror
(eval):1:parseerror
ConstModule::C1=99
^
ruby>ConstModule::C1#..regardlessofhowwetamperwithit.
101

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章