Null Safety Nedir?
Null Check Operator ve Kullanımı
Örneğin, aşağıdaki gibi bir değişkeniniz olduğunu düşünün:
```dart
String? userName;
```
Bu değişken, null olabilen bir `String` türüdür. Eğer bu değeri bir işlemde kullanmadan önce kesinlikle null olmadığını garanti ediyorsanız, Null Check Operator ile kullanabilirsiniz:
```dart
String username = userName!;
```
Buradaki `!` operatörü, userName'in kesinlikle null olmadığını belirtir. Eğer userName null ise, bu durumda "Null Check Operator Used on a Null Value" hatasını alırsınız.
"Null Check Operator Used on a Null Value" Hatası
1. Null olan bir değere erişmeye çalıştığınızda: Eğer bir değişkenin null olduğunu bilmeden, `!` operatörü ile işlem yapmaya çalışırsanız, bu hata meydana gelir.
2. Null kontrolü yapmadan işlemi gerçekleştirdiğinizde: Değişkenin null olup olmadığını kontrol etmeden, operatör ile işlem yapmanız sonucu hata alırsınız.
Diyelim ki aşağıdaki gibi bir kod yazdınız:
```dart
String? userName = null;
print(userName!);
```
Yukarıdaki kodda, `userName` değişkeni null olduğu için, `!` operatörü kullanıldığında Dart, "Null Check Operator Used on a Null Value" hatasını verecektir.
Hata Nasıl Çözülür?
# 1. Null Kontrolü Yapın
```dart
if (userName != null) {
print(userName!);
} else {
print("Kullanıcı adı null!");
}
```
Bu şekilde, `userName` null olmadığı sürece güvenli bir şekilde işlem yapabilirsiniz.
Eğer değişkenin null olması durumunda bir yedek değer kullanmak istiyorsanız, null koalesans operatörü (`??`) ile bir yedek değer belirleyebilirsiniz:
```dart
String userName = userName ?? 'Varsayılan Ad';
print(userName);
```
Bu durumda, `userName` null ise `'Varsayılan Ad'` değeri kullanılır.
Null Safety özelliklerini kullanarak, bir değişkenin null olma olasılığını tamamen ortadan kaldırabilirsiniz. Örneğin, değişkeni null olamayacak şekilde tanımlayarak, aşağıdaki gibi kodunuzu daha güvenli hale getirebilirsiniz:
```dart
String userName = 'Ahmet';
print(userName);
```
Bu durumda, `userName` değişkeninin null olması söz konusu olmadığı için, Null Check Operator kullanmanıza gerek kalmaz.
Sonuç
Dart'ta null güvenliğini etkili bir şekilde kullanmak, daha sağlam ve hatasız uygulamalar geliştirmek için oldukça önemlidir. Unutmayın, her zaman değişkenlerinizin null olma durumunu kontrol edin ve gerekli önlemleri alın!