Sınıf Sabitleri

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