?一個(gè)常量由大寫字母開頭.它應(yīng)最多被賦值一次.在Ruby的當(dāng)前版本中,常量的再賦值只會(huì)產(chǎn)生警告而不是錯(cuò)誤(non-ANSI版的eval.rb不會(huì)報(bào)告這一警告)
ruby.html" target="_blank">ruby>fluid=30
???30
ruby>fluid=31
???31
ruby>Solid=32
???32
ruby>Solid=33
???(eval):1:?warning:?already?initialized?constant?Solid
???33??
常量可以定義在類里,但不像實(shí)變量,它們可以在類的外部訪問.
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???
以上就是關(guān)于初步掌握Ruby類常量的全部內(nèi)容,希望本文的介紹能讓你有所收獲,更多內(nèi)容請關(guān)注武林技術(shù)頻道網(wǎng)站。
|
新聞熱點(diǎn)
疑難解答
圖片精選