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şkenlernullolabilir. -
Non-nullable Tipler:
Stringşeklinde tanımlanan değişkenler kesinlikle bir değer içermelidir. -
Null Check Operatörü (
!): Bir değerinnullolmadığı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
✅ 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:
- Flutter Null Safety - Official Introduction - Flutter ekibinin resmi açıklaması
- Dart Null Safety Explained - Dart'ta null safety'nin temelleri
- Understanding Null Safety in Flutter - Pratik örneklerle açıklama
🎨 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
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)