Forum: Duyurular RSS
Yeni ders: Diğer İşlev Olanakları
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Yeni ders: Diğer İşlev Olanakları
  http://ddili.org/ders/d/islevler_diger.html

Ali
canalpay (Moderatör) #2
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Derste böyle demişsiniz:

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.
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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/di…

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
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Duyurular RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-22, 06:41:54 (UTC -08:00)