Subject: 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
Onu şöyle değiştireceğim:
Ali
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
acehreli
Show profile
Link to this post