DEV Community

Alp Arslan Mirasow
Alp Arslan Mirasow

Posted on

Flutter'de Null Safety Nedir? 🎯

Null safety, Flutter'de değişkenlerin null (boş) değer almasını kontrol altına alan bir güvenlik sistemidir. Kodunuzu daha güvenli ve hatasız hale getirir.

⚡ Temel Kavramlar

  • Nullable Tipler (?): String? şeklinde tanımlanan değişkenler null olabilir.
  • Non-nullable Tipler: String şeklinde tanımlanan değişkenler kesinlikle bir değer içermelidir.
  • Null Check Operatörü (!): Bir değerin null olmadığını garantilediğinizde kullanılır.
  • Null-aware Operatörler (??, ?.): Güvenli erişim sağlar.

📝 Hızlı Örnek

// Nullable tip
String? isim;  // null olabilir
isim = null;   // ✅ Geçerli

// Non-nullable tip
String soyisim = "Arslan";  // null olamaz
// soyisim = null;  // ❌ HATA!

// Güvenli kullanım
print(isim?.length);  // null ise hata vermez
print(isim ?? "Varsayılan");  // null ise varsayılan değer
print(isim!);  // null olmadığını garanti ediyorsun
Enter fullscreen mode Exit fullscreen mode

✅ Avantajları

  • Çalışma zamanı hatalarını engeller
  • Kod daha okunaklı ve güvenli olur
  • IDE otomatik uyarılar verir

💡 Özet: Null safety ile hangi değişkenlerin null olabileceğini ? ile belirtirsiniz. Bu sayede Flutter, potansiyel hataları kod yazarken yakalar!

🎥 YouTube Videoları

Null Safety konusunu anlatan videolar:

🎨 Görsel Açıklama

Null Safety kavramını görselleştiren bir diagram:

graph TD
    A["Değişken Tanımlama"] --> B{"Null olabilir mi?"}
    B -->|Evet| C["String? (Nullable)"]
    B -->|Hayır| D["String (Non-nullable)"]

    C --> E["null atanabilir ✅"]
    C --> F["Güvenli erişim gerekli"]
    F --> G["?.  operatörü"]
    F --> H["?? operatörü"]
    F --> I["! operatörü"]

    D --> J["null atanamaz ❌"]
    D --> K["Direkt erişim güvenli"]

    style C fill:#ffd700
    style D fill:#90EE90
    style E fill:#87CEEB
    style J fill:#FFB6C6
Enter fullscreen mode Exit fullscreen mode

Bu diyagram, null safety'nin temel mantığını gösterir:

  • Sarı kutu: Nullable tipler (? ile işaretli)
  • Yeşil kutu: Non-nullable tipler (güvenli)
  • Mavi/Pembe kutular: Her tip için geçerli kurallar

Top comments (0)