Forum: Ders Arası RSS
null değer kontrolü
zafer #1
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: null değer kontrolü
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;
    }

Error: incompatible types for ((bson) is (null)): 'Bson' and 'typeof(null)'
https://github.com/zafer06 - depo
Bu mesaj zafer tarafından değiştirildi; zaman: 2015-09-01, 01:35.
acehreli (Moderatör) #2
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ı
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
zafer #3
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
if (bson.isNull())

Evet isNull() metodu işe yarıyor. Teşekkürler.
https://github.com/zafer06 - depo
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-18, 04:12:53 (UTC -08:00)