Thread overview
Struct İçinde Fonksiyon Hatası
Apr 12, 2011
Kadir Can
Apr 12, 2011
Kadir Can
April 12, 2011
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 gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 12, 2011

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 gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 13, 2011

Evet özyinelemeli yapmaya çalıştım.

Dalgınlığıma gelmiş.Değer döndürüyor gibi yapmışım.

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