Forum: Ders Arası RSS
Struct İçinde Fonksiyon Hatası
Kadir Can #1
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Struct İçinde Fonksiyon Hatası
import std.stdio;
struct XmlElement{
    string tag;
    string[string] attributes;
    XmlElement[] elements;
 
    void show(){
        write("<",tag," ");
        for( int i = 0 ; i < attributes.length ; i++ ) {
            write(attributes.keys[i],"=","\"",attributes.values[i],"\"");
        }
        for( int i = 0 ; i < elements.length ; i++ ) {
            write(">",elements[i].show(),"<\\",tag,">"); //Hata burada
        }
        writeln();
    }
}
 
void main(){
 
    XmlElement eleman;
 
    XmlElement diğer;
 
    eleman.tag="a";
 
    eleman.attributes=["title":"merhaba"];
 
    diğer.tag="b";
 
    eleman.elements=[diğer];
    
    eleman.show();
}

Bu kod hata veriyor.Acaba fonksiyon prototipi mi istiyor?
Bu mesaj Kadir Can tarafından değiştirildi; zaman: 2011-04-12, 12:43.
acehreli (Moderatör) #2
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ı
write'a show()'un döndürdüğü değeri gönderiyorsun. show() bir değer döndürmediği için de olmuyor. Daha sonradan değiştirirsin ama şimdilik hatalı satırın yerine şunu koymalısın:

            write(">");
            elements[i].show();
            write("<\\",tag,">");

Eğer show() yerine toString() işlevi olsaydı ve o işlev bir string döndürseydi, o zaman şöyle de olurdu:

            write(">", elements[i], "<\\", tag, ">");

(Tabii onu derlemedim bile.)

Ama çok güzel görünüyor! Kendi türünden nesneler içerdiği için özyinelemeli bir yapı olmuş. :)

Ali
Bu mesaj acehreli tarafından değiştirildi; zaman: 2011-04-12, 12:58.
Kadir Can #3
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet özyinelemeli yapmaya çalıştım.

Dalgınlığıma gelmiş.Değer döndürüyor gibi yapmışım.
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: Ders Arası 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-18, 07:29:46 (UTC -08:00)