Thread overview
Dizilere eleman ekleme
Jun 24, 2020
cos00kun
Jun 24, 2020
cos00kun
June 24, 2020

Selamlar,,

import std.stdio : writeln;

char[] dizi;
string[] kelimecikler; // Sadece  string kelimecikler; yazsakta aşağıda kod derlenecek

void main() {

 dizi=dizi~'T'~'r';
 kelimecikler=kelimecikler~"Hamsi"~"Palamut";

 writeln(dizi);
 writeln(kelimecikler);
}

şimdi burada 'kelimecikler=kelimecikler~"Hamsi"~"Palamut";' yerine 'kelimecikler~="Hamsi "~"Palamut";' yazdığımızda sorun yok aynı çıktıyı alıyorum ancak;

'dizi=dizi~'T'~'r';' yerine 'dizi~='T'~'r';' yazdığımda;

'Error: incompatible types for (cast(int)'T') ~ (cast(int)'r'): both operands are of type int'
hatası alıyorum.. nedendir acep ?

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

June 24, 2020

Tamam anladım Ali Hocam :blush:

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

June 24, 2020

~ işleci yalnızca dizilerle kullanılır. Hem kelimecikler hem de "Hamsi" ve "Palamut" dizi olduklarından onlarla kullanabiliyorsun. 'T' ve 'r' ise dizi değil.

Hata mesajındaki 'int' kafa karıştırabilir. O da şu genel kuralla ilgili olmalı: D'de (ve C'de ve C++'ta) işlemler en küçük olarak int türü ile halledilir. Bir işlev 'char' türünde parametre bile alsa o parametre değeri perde arkasında int olarak geçirilir. Hata mesajındaki 'int' bununla ilgili olabilir.

Ali

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