Thread overview
null değer kontrolü
Aug 31, 2015
zafer
Sep 01, 2015
zafer
September 01, 2015

Merhaba,
Aşağıdaki metotla MongoDB veritabanından üye bilgisi almaya çalışıyorum. Ancak üye bulunamazsa veya koleksiyon mevcut değilse null değeri dönüyor. Doğal olarak null değeri == operatörü ile sınayamıyoruz bu sebeple bende is operatörünü kullanmaya çalışıyorum ama aşağıdaki hatayı veriyor? Yanlış yaptığım yer neresi?

   public Uye uyeBilgisiGetir(int uyeNo)
   {
       // http://vibed.org/api/vibe.db.mongo.collection/MongoCollection.findOne

       auto bson = db["uyeler"].findOne(["uyeNumarasi": uyeNo]);

       writeln(bson); // null

       if (bson is null)
       {
           writeln("bson degeri null.");
       }
       else
       {
           writeln("bson degeri null degil.");
       }

       logInfo("-----> " ~ bson.toJson.toString());
       Uye uye = deserialize!(BsonSerializer, Uye)(bson);

       return uye;
   }

Alıntı:

>

Error: incompatible types for ((bson) is (null)): 'Bson' and 'typeof(null)'

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

September 01, 2015

Belgelerden anlaşıldığına göre gösterge veya sınıf değişkeni değil, bir Bson yapısı değeri döndürüyormuş:

http://vibed.org/api/vibe.data.bson/Bson

Anlaşılır biçimde yazmamışlar ama bulamadığı zaman Bson(null) değeri döndürüyor; yani, yine de bir Bson nesnesi ama null ile ilklenmiş. Galiba yukarıdaki sayfadaki isNull üye işlevi kullanılmalı:

   if (bson.isNull())

Herhalde şu da olur ama yukarıdaki daha iyi:

   if (bson == Bson(null))

Ali

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

September 02, 2015
if (bson.isNull())

Evet isNull() metodu işe yarıyor. Teşekkürler.

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