Junior
Dart'ta sıfır güvenliği (null safety) nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Null güvenliği, Dart'ta null çözümlemesiyle ilgili hataları önlemeye yardımcı olan bir sistemdir. Derleyici kodu analiz eder ve bir değişkenin null değer tutup tutamayacağını belirler. Bir değişken null kabul etmiyorsa, derleyici ona hiçbir zaman null atanmayacağını garanti eder.
Null güvenliğinin temel yönleri:
- Varsayılan null olmayan tür: Varsayılan olarak, türler null kabul etmez (non-nullable).
// int null olamaz int count = 0; - Null kabul eden tür: Bir değişkenin null olabileceğini açıkça belirtmek için soru işareti
?kullanılır:// String? null olabilir String? name; !operatörü (null olmayan onay): Null kabul eden bir ifadenin null olmadığını onaylamak için kullanılır. Dikkatli kullanılmalıdır, çünkü null ise istisna fırlatır.String? nullableName = 'Flutter'; // nullableName'in null olmadığını bilerek ! kullanıyoruz print(nullableName!.length);?operatörü (null duyarlı operatörler): Null kabul eden ifadelerde güvenli erişim veya metod çağrısı yapmak için kullanılır.?.(null duyarlı erişim):String? nullableString; // nullableString null değilse, length çağrılır; değilse sonuç null olur int? length = nullableString?.length;??(null ise):String? serverName; // serverName null değilse, değeri kullanılır; değilse 'Guest' String displayName = serverName ?? 'Guest';??=(null ise atama):String? cache; // cache null ise, 'Loading...' atanır cache ??= 'Loading...';
- Akış Analizi: Dart derleyicisi, kodu analiz eder ve null kabul eden değişkenin belirli bir bölümde null olmadığını garanti eder, böylece null olmayan olarak kullanılabilir.
String? greeting = getGreeting(); // Derleyici, bu kontrol sonrası greeting'in null olmadığını bilir if (greeting != null) { print(greeting.toUpperCase()); // Güvenli şekilde toUpperCase() kullanılabilir }
Null güvenliğinin avantajları:
- Hata azaltma: NullReferenceException (veya benzerleri) çalışma zamanında önler.
- Daha iyi okunabilirlik: Bir değişkenin null olabileceğini açıkça gösterir.
- Performans artışı: Derleyici, hangi değişkenlerin garantili olarak null olmadığını bilerek optimizasyon yapabilir.
Null güvenliği Dart 2.12 sürümünde tanıtılmıştır.