D Programlama Dili - Çözümler

Hazır Değerler

  1. Buradaki sorun, sağ taraftaki hazır değerin bir int'e sığmayacak kadar büyük olması ve o yüzden de türünün derleyici tarafından long olarak belirlenmesidir. Bu yüzden soldaki int türündeki değişkene uymaz. Burada en az iki çözüm vardır.

    Bir çözüm, açıkça int yazmak yerine, değişkenin türü için auto kullanmak ve tür seçimini derleyiciye bırakmaktır:

        auto miktar = 10_000_000_000;
    

    Böylece miktar değişkeninin değeri de long olarak seçilir.

    Diğer çözüm, değişkenin türünü de açıkça long yazmaktır:

        long miktar = 10_000_000_000;
    
  2. Burada satırın başına götüren '\r' karakteri kullanılabilir. Böylece hep aynı satırın üstüne yazılır.
    import std.stdio;
    
    void main() {
        for (int sayı = 0; ; ++sayı) {
            write("\rSayı: ", sayı);
        }
    }
    

    Yukarıdaki programın çıktısı hem fazla hızlı hem de stdout'un ara belleğinin dolup boşalmasına bağlı olarak tutarsız olabilir. Aşağıdaki program her yazmadan sonra hem flush() ile çıkış ara belleğini boşaltır, hem de 10 milisaniye bekler:

    import std.stdio;
    import core.thread;
    
    void main() {
        for (int sayı = 0; ; ++sayı) {
            write("\rSayı: ", sayı);
            stdout.flush();
            Thread.sleep(10.msecs);
        }
    }
    

    Normalde çıkış ara belleğinin açıkça boşaltılmasına gerek yoktur. Ara bellek yeni satıra geçmeden önce veya girişten bilgi okunmadan önce de otomatik olarak boşaltılır.