Ruby biri sabit, ikisi de yarı-değişken olmak üzere üç çeşit değişkene sahiptir. Değişkenlerin ve sabitlerin türü yoktur. Türü olmayan değişkenler sakıncalı olsa bile, Ruby'nin kolay ve hızlı felsefesine uygun olarak bir çok avantaj sağlar.
Bir çok yazılım geliştirme dilinde değiştirilebilirliğini sağlamak (sabit olsalar bile) ve etki alanını belirlemek için değişkenlerin türü belirtilerek bildirilmesi gerekir.
Ancak değişken türleri önemli olmadığından ve aşikar çözümün göreceğiniz gibi değişken isminden halledilebilediğinden beri, Ruby'de değişken bildirimlerine ihtiyacımız yoktur.
Değişken isminin ilk karakteri sayesinde bir bakışta türünü anlamak mümkündür:
Tablo 19.1.
$ | genel değişken |
@ | örnek değişken |
[a-z] ya da _ | yerel değişken |
[A-Z] | sabit |
Bunların dışında tek istisna Ruby'nin yarı-değişkenleridir: daima o an çalışmakta olan nesneyi ifade eden self ve ilklendirilmemiş değişkenlere atanan anlamsız değer olan nil. Her ikisi de yerel değişkenler gibi tanımlanmış olsalar da, self yorumlayıcı tarafından saklanan bir genel değişken ve nil de gerçekte bir sabittir. Bunlar sadece iki istisna olduğu için üzerlerinde fazla durmayacağız.
self'e ya da nil'e değer atamamalıyız. main, bir self değeri olarak üst nesneyi ifade eder:
ruby> self
main
ruby> nil
nil