Thread overview
Yeni ders: Diğer İşlev Olanakları
May 28, 2010

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

Ali

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

January 20, 2013

Derste böyle demişsiniz:

Alıntı (D.ershane):

>

Not: dmd'nin bu dersi yazdığım sırada kullandığım 2.047 sürümünde inout ile ilgili hatalar var. Örneğin parametrelerin daha doğru olarak inout(char)[] olarak yazılmaları derleme hatasına neden oluyor.

Bu hata kalkmış. Ancak hatalar dediğiniz için, bende diğer hataları şuan bilmediğimden kalkıp kalkmadığını doğrulayamadığım için ve ayrıca örnekte 'inout(char)[]' mi kullanacaksınız yoksa 'inout(char[]) ' mı kullanacaksınız bilmediğim için ben müdahil olmadım.

Hatırlatmak istedim.

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

January 20, 2013

Teşekkürler, bakacağım.

inout'un tasarım konusunda eksiklikleri olduğunu da biliyorum. Hatırladığım kadarıyla, nadir bazı durumlarda ne olması gerektiği tam olarak açıklanmış değil. Örneğin, iki tane inout parametre olduğunda çıkış türüne hangisinin değişebilme özelliğinin geçeceği sanırım belirsiz. Ek olarak, inout üye değişkenlerde de kullanılabiliyor ve o durumda this'in kendisinin değişebilirliğini belirliyor. Bunu daha dün trileri'yi düzeltirken şurada kullanmıştım. Şu modülde inout diye aratabilirsiniz:

http://code.google.com/p/trileri/source/browse/trunk/tr/dizgi.d

Doğrusu, oraya bakıldığında bir çok yerde inout kullanılmasının mantıklı olduğu görülüyor. Konudan konuya atlıyorum ama büyük olasılıkla DConf 2013'te konuşmam olacak. Oradaki konulardan birisi postblit (kopya sonrası işlevi), opAssign, ve bunların lvalue ve rvalue gibi durumlarda nasıl kullanıldığı üzerine olacak. inout da olayın içinde... :)

Ayrıca, 2.062 çıktığında kitabın bu bölümünde en az bir eksiklik olacağını da biliyorum. Örneğin, 'auto ref' parametrelerde de kullanılabiliyor(muş) ama 2.061'e kadar yalnızca şablonlarla kullanılabiliyormuş. 'auto ref' 2.062 ile normal işlevlerle veya üye işlevlerle de kullanılabilecek.

'auto ref'in parametrenin anlamı şu: Eğer parametre olarak gönderilen değeri referans olarak alabiliyorsan öyle al, alamıyorsan otomatik olarak bir nesneye kopyala ve o yeni nesneye referans olarak al. Bu, rvalue'ların ref parametrelere geçirilememeleri ile ilgili bir konu. Neyse... O konuyu eklemek için daha zaman var... :)

Ali

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