Thread overview
Yeni ders: Değerler ve Referanslar
December 01, 2009

http://ddili.org/ders/d/deger_referans.html

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 02, 2009

Kutuyu paint'te yapsaydınız daha iyi olurdu. Her ne kadar sitenin arka plan rengine uymayacak olsada.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 02, 2009

Bu konu fazla uzuyor diye 'null' ve 'is'i başka bir konuya ayırmaya karar verdim. Ama öyle yapınca 'referans değişkenleri' ile 'referans türlerinin' önemli bir farklarını da belirtememiş oldum:

Atama işleminde:

  • 'referans değişkenleri' takma ismi oldukları değeri değiştirirler

  • 'referans türleri' ise, hangi nesneye erişim sağladıklarını değiştirirler.

Yani C++'ın referansları ile göstergelerinin eşdeğeri olan kavramlar. D'de gösterge kavramına günlük kullanımda gerek yok galiba... :)

Bu derse atamanın farkını ekleyeceğim ama sonra... :)

Bir de aciz şekillerimde kullandığım kutu karakterlerinin her fontta bulunmadığını ben de farkettim. ;) Yakında bir çözüm bulacağım.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 02, 2009

Tamam değiştirdim:

  • Yeni başlık: Atama işleminin farkı

  • Yeni başlık: Referans türleri hiçbir değere erişim sağlamıyor olabilirler

Ayrıca bunları özete de ekledim.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 03, 2009

Tam bu konunun üstüne, referansların null olamamalarıyla ilgili bir tartışma başladı:

http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=102900

D, hiçbir nesneye erişim sağlamayan değişkenlere izin verir:

   File dosya;

Bazı dillerde "non-nullable" tür diye bir kavram var: o durumda değişkenler mutlaka bir nesneye erişim sağlamak zorunda oluyorlar. Yukarıdaki konudan geçilen Dr.Dobbs CodeTalk yazısındaki örnekten anlaşıldığına göre, örneğin C#'ta bir türün 'nullable' ("null olabilen") olup olmadığı denetlenebiliyormuş:

   // C# kodu:
   MyClass? nullable = new MyClass(); nullable = null;

Yani ancak 'nullable' ise null değer atanabiliyormuş.

Böylece o türleri kullanmadan önce şöyle denetimler gerekmemiş oluyor:

   if (dosya !is null) {
       dosya.writefln("merhaba");
   }

Eğer dosya 'non-nullable' bir türse, hiç null olamayacağı için denetlemeden doğrudan kullanılabiliyor:

   dosya.writefln("merhaba");

İşin garibi, hani D'den türemiş ve Python yazımına benzeyen deneysel bir dil vardı (Delight):

http://delight.sourceforge.net/

O dilde referanslar non-nullable. (Hepsi mi yoksa özellikle mi seçiliyor; bilmiyorum.)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 06, 2009

Bu derste eşleme tablolarının da referans türleri olduklarından hiç bahsetmemişim. Onun için de küçük bir paragraf ve örnek kod ekledim.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]