一个常量由大写字母开头.它应最多被赋值一次.在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
- 0
- 0
- 0
- 0
- 0
更多推荐
ruby 类常量 解析
发布评论