...

Öncelikle bu yazıdaki konumuzu belirteyim; Ruby programlama dilinde değişkenlerin nasıl tanımlandığı ve değişkenler üzerinde tip dönüşümlerinin nasıl olduğu.

Ruby'de değişkenler tanımlanırken herhangi bir şekilde tip belirtmenize gerek yoktur. İsterseniz Java veya C#'da yaptığınız gibi yapabilirsiniz ama o zaman biraz ayıp olur.. yuhananırsınız.. ohaa artık diyenler olabilir. Şöyledir yani;

RUBY:
intValue = 5
strValue = 'Hobaaa'
arrValue = []
hashValue = {}
regValue = \.*\
classValue = MyClass.new

Öncelikle programlama dillerinde değişken tiplerinin dönüşümü ve bu tiplerin ele alınmasını iki soru altında toplanabiliriz; Bu sorular
1. Tipler arasındaki dönüşüm nasıl gerçekleşir?
2. Değişken üzerinde işlem yaparken tip önemlimidir?

Öncelikle 1. soruyu ele alalım; "1. Tipler arasındaki dönüşüm nasıl gerçekleşir?"
El cevap: Eğer değişkeninizi bir tipten öteki tipe hödöö hödöö diye gönderiyorsanız, kullandığınız dil dinamik tip dönüşümüne sahiptir demektir. Eğer hödö hödöö diye değil de, daha efendi bir şekilde (örnek: 'String.valueOf(55)') yapıyorsanız durağan tip dönüşümüne sahipsiniz demektir. Değişkenlerinizi bir tipten öteki tipe değiştiremiyorsanız, ohaaa sizin o kullandığınız şey programa dili değil çin işkencesi demektir.

Programlama dillerine göre dinamik ve durağan tip dönüşümüne sahip olan diller;
Dinamik: Ruby, Python..vb.
Durağan: Java(yyyy), C#....vb.

İkinci soruyu ele alırsak; "2. Değişken üzerinde işlem yaparken tip önemlimidir?"
El cevap: Eğer siz bir karakter ile sayiyi toplamak isterseniz veya benim bir değerim var ama inan ben bile bilmiyorum ne olduğunu öyle yanar dönerli birşey işte.. (Basic'den Variant, C'den void) diyebiliyor iseniz, sizin için değişkenin tipi pekde önemli değildir. Yani değişkenler ile değişken tipleri arasındaki bağlantı 'zayıf'tır. Her değişkenin veya her işlemin tipi olmasına gerek yoktur, diyebilirsiniz. Ama dersenizki 'hadeee canım, tipsiz tipsiz değişkenmi olur, tipli adamın tipsiz değişkeni olmaz' derseniz, tüm değişkenleriniz ile değişken tipleri arasında 'güçlü' bir bağlantınız var demektir.

Güçlü: Ruby, Java(yyyy), C#, C++...vb.
Zayıf: C, Basic, Java(yyy)Script....vb.

Peki Ruby'de bunlar nasıl oluyor da oluryor diyeceksiniz şimdi; İşte böyle oluyor..;

RUBY:
intValue = 5
puts 5 + intValue # problem yok.
puts "5" + intValue # büüürrrstt nereye biraderr..
puts "5" * "5" # bürrsttt yok daha neler..
# bir string(a) ile numarayı(b) çarptığınızda, ruby sizin a'yi b kez tekrarlamak istediğinizi zanneder.
puts "5" * intValue # Olur, bunun ruby'de karşılığı vardır.

Kolay gelsin..!

Yazar: Tankut ŞENTÜRK
Kaynak: http://esiyo.net/ruby-degisken-ozellikleri/108

Ekle Sosyal link paylasim sitelerindeki hesabiniza ekleyip, daha sonra kolaylikla bu yaziyi bulabilirsiniz.
  • Digg
  • del.icio.us
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists