Forum: Ders Arası RSS
bool okumak daha kolay
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: bool okumak daha kolay
std.conv.to dizgiden bool'a dönüştürebiliyor. Mantıksal ifadeler bölümünün 4 numaralı probleminde girişten_bool_oku() diye bir işlev var:

  http://ddili.org/ders/d/mantiksal_ifadeler.html

bool girişten_bool_oku(string mesaj)
{
    // Mesajı yazdır
    writef(mesaj);
 
    // Girilen kelimeyi bir dizgiye oku
    char[] giriş;
    readf("%s\n", &giriş);
 
    /*
      Şimdi girilen dizgi "true" ise true değerini, "false"
      ise false değerini döndürmek istiyoruz. Yani burada bir
      dönüşüm yapıyoruz: örneğin "true" dizgisini görünce
      true değerini döndürüyoruz.
 
      Not: "true" dizgisi ile true değerinin aynı şey
           olmadıklarına dikkat edin: Birisi 't', 'r' gibi
           karakterlerden oluşur, diğeri ise bir bool
           değeridir.
    */
 
    // Sonuç olarak döndüreceğimiz değişken:
    bool dönüştürülen_değer;
 
    // "false"tan false'a ve "true"dan true'ya dönüşüm
    if (giriş == "false") {
        dönüştürülen_değer = false;
 
    } else if (giriş == "true") {
        dönüştürülen_değer = true;
 
    } else {
        /*
          Bilmediğimiz bir kelime geldi. Bu durumda ne
          yapacağımız belli olmadığı için işlemden
          vazgeçip hata atmaktan başka hiçbir çaremiz yok.
        */
        throw new Exception(
            ("Bu kelimeyi anlamadım: " ~ giriş ~
             ". Lütfen false veya true yazın.").idup);
    }
 
    return dönüştürülen_değer;
}

Onu şöyle değiştireceğim:

bool girişten_bool_oku(string mesaj)
{
    // Mesajı yazdır
    writef(mesaj ~ "(false veya true) ");
 
    // Girilen kelimeyi bir dizgiye oku
    string giriş;
    readf("%s\n", &giriş);
 
    // O dizgiden bir bool değer üret
    bool dönüştürülen_değer = to!bool(giriş);
 
    // Üretilen değeri işlevi çağırana döndür
    return dönüştürülen_değer;
}

Ali
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-19, 00:50:31 (UTC -08:00)