Merhaba,
import std.stdio;
import std.algorithm;
void main()
{
struct C{
string name;
}
C[string] aa;
bool constructed;
auto a = aa.require("a", { constructed=true; return C(); }());
a.name = "erdem";
writeln(aa);
}
writeln(aa); ben ["a":C("erdem")] yazdırmasını bekliyorum. Fakat sonuç boş küme çıkıyor.
Require yeni bir C yapısı oluşturuyor ve auto a = aa.reqiure.. dediğimiz "a" kopyalanıyor ve a.name = "erdem" satırı kopyayı değiştiriyor.
Referans yapayım şunu desek D'de ref anahtar kelimeside sadece foreach'de kullanılabiliyor.
Ben sonuçda şunu yapmak durumunda kalıyorum:
C* a = &aa.require("a", { constructed=true; return C(); }());
Adres alma operatörüde , gösterici kullanmakta hoşuma gitmesede bunları kullanmak zorunda kalıyorum.
require ile ilk tecrübelerim böyle oldu ne yazıkki. Pointer kullanmadan ve yapıyı sınıfa dönüştürmeden nasıl çözebilirdim acaba fikriniz var mı ?
Erdemdem
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]