Bir sabit büyük harfle başlayan bir ada sahiptir. Sabitlere bir kere değer ataması yapılmalıdır. Ruby'nin şu anki uygulamasına göre, sabitlere yeniden değer ataması yapmak hata değil uyarı ile sonuçlanır (eval.rb'nin ANSI olmayan sürümü uyarı değil hata raporlar):
ruby> fluid=30
30
ruby> fluid=31
31
ruby> Solid=32
32
ruby> Solid=33
(eval):1: warning: already initialized constant Solid
33
|
Sabitler sınıflarla beraber tanımlanabilirler ancak örnek değişkenlerin aksine sınıfın dışından da erişilebilir durumdadırlar.
ruby> class SabitSinifi
| C1=101
| C2=102
| C3=103
| def goster
| print C1," ",C2," ",C3,"\n"
| end
| end
nil
ruby> C1
ERR: (eval):1: uninitialized constant C1
ruby> SabitSinifi::C1
101
ruby> SabitSinifi.new.goster
101 102 103
nil
|
Sabitler aynı zamanda modül içinde de tanımlanabilirler.
ruby> module SabitModulu
| C1=101
| C2=102
| C3=103
| def sabitleriGoster
| print C1," ",C2," ",C3,"\n"
| end
| end
nil
ruby> C1
ERR: (eval):1: uninitialized constant C1
ruby> include SabitModulu
Object
ruby> C1
101
ruby> sabitleriGoster
101 102 103
nil
ruby> C1=99 # pek iyi bir fikir değil
99
ruby> C1
99
ruby> SabitModulu::C1 # modülün sabiti rahatsız edilmemiş...
101
ruby> SabitModulu::C1=99 # önceki sürümlerde buna izin verilmez
(eval):1: warning: already initialized constant C1
99
ruby> SabitModulu::C1 # sen iste yeter ki...
99 |