Forum: D Programlama Dili RSS
Algoritmaları sınıf fonksiyonları ile kullanmak
kerdemdemir #1
Üye Eyl 2013 tarihinden beri · 109 mesaj · Konum: Danimarka
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Algoritmaları sınıf fonksiyonları ile kullanmak
Benim kodum biraz daha karışık ama olayın özeti şu aslında,

A[] dizi;
 
struct A 
{
      bool Hesapla()
      { 
           return x == 5; 
      }
 
      int x;
}
 
bool kareOlusturmaSorunlumu = dizi.any!( a => a.Hesapla() ) ; // --> Bu satırın çalışmasını beklerdim 

Dizinin içinde elemanlardan biri false dönüyorsa sonucun false olmasını istiyorum. Fakat derleyemedim. Bir fikriniz olurmu acaba.

Error    1    Error: template std.algorithm.searching.any!"a.KareOlusturalabilirmi()".any cannot deduce function from argument types !()(SiyahKareAdayi[]), candidates are:    C:\Users\Erdem\documents\visual studio 2013\Projects\GMMD\GMMD\main.d    119   

Error    2    std.algorithm.searching.any!"a.KareOlusturalabilirmi()".any(Range)(Range range) if (isInputRange!Range && is(typeof(unaryFun!pred(range.front))))    C:\D\dmd2\src\phobos\std\algorithm\searching.d    159
kerdemdemir #2
Üye Eyl 2013 tarihinden beri · 109 mesaj · Konum: Danimarka
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet efenim eğer Hesapla şöyle bir fonksiyon ise

bool Hesapla(int a, int b);

Ve biz bu fonksiyonu argumanları olmadan çağırmaya çalışıyorsak benim aldığım hataları alıyormuşuz. Burda hata mesajının anlaşılması biraz zormu yoksa bana mı öyle geldi.
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4481 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bu, D'de bilinen ve sıkça karşılaşılan bir sorun. Ancak, dil sorunundan öte, bir gerçekleştirme sorunu: üye işlevler ve delegate'ler üzerinde işleyecekleri ortamı gösteren gösterge (context pointer) içerirler. dmd'nin ön yüzünde bu context için yalnızca tek göstergelik yer var. Hem delegate hem üye işlev bir araya gelince ikisine birden yer kalmıyor. İlgili hata raporu:

  https://issues.dlang.org/show_bug.cgi?id=5710

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:
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-09-26, 07:40:47 (UTC -07:00)