http://ddili.org/ders/d/islevler_diger.html
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Thread overview | |||||
---|---|---|---|---|---|
|
May 28, 2010 Yeni ders: Diğer İşlev Olanakları | ||||
---|---|---|---|---|
| ||||
http://ddili.org/ders/d/islevler_diger.html Ali -- |
January 20, 2013 Yeni ders: Diğer İşlev Olanakları | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | 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. -- |
January 20, 2013 Yeni ders: Diğer İşlev Olanakları | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | 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 -- |