Merhaba,
Biraz aptalca olacak ama, unutmuş olabileceğim bilgilerin tekrarını yaparak şunu anlayamadığımı fark ettim:
import std.stdio;
struct S{
int i;
S s();
}
void main(){
S test;
test.writeln; // S(0)
test.i = 1;
/* DERLENEMEYEN test.s = new S(2); SATIR */
test.writeln; // S(1)
}
Sanırım S'in içindeki s(), aslında S döndüren bir işlev öyle mi? Peki o satırın başına static koyduğumuzda (ve tabi parantezleri kaldırdığımızda) ne oluyor? Yani şöyle:
import std.stdio;
struct S{
int i;
struct foo {
int i;
}
static S f;
}
void main(){
S test;
test.writeln; // S(0)
test.i = 1;
test.f.i = 2;
test.writeln; // S(1)
}
Teşekkürler...
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]