19. Değişkenler

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 getirisi vardır.

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 göreceğiniz gibi değişken isminden elde edilebileceğinden, Ruby'de değişken bildirimlerine ihtiyacımız kalmaz.

Değişken isminin ilk karakteri sayesinde bir bakışta türünü anlamak mümkündür:

$ 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