Sazumi Viki
Dart Null Safety In Flutter

Dart Null Safety In Flutter

Dart Null Safety In Flutter

Pernahkan Coders mengalami erorr seperti text di bawah ini

line 4 . The property 'length' cant`t be unconditionally accessed because the receiver can be `null; (view docs) Try making the access conditional (using '?.' or adding a null check to the target ('!').

Erorr tersebut adalah salah satu contoh erorr yang disebabkan value null pada suatu variabel.

Pada saat di release value null yang tidak terhandel ini dapat menyebabkan beberapa masalah seperti aplikasi force close, hanya tampil whitespace aja, dll. Maka dari itu sejak flutter versi 2 rilis, ada fitur yang null safety.

Fitur ini akan membantu mencegah adanya sebuah variabel yang bernilai null dan memberikan erorr nya di level compiler bukan saat kode program di running (runtime) bahkan di release.

Lalu Bagaimana Cara Menghandel Value Yang Null Supaya Tidak Erorr Saat Dirunning?

  • Melakukan null check terlebih dahulu dengan percabangan
1
2
3
4
5
String? name;

if (name == null) {
name = "default name";
}
  • Dengan memberikan default value menggunakan operator ??
1
2
3
String? guest;

String guestName = guest ?? "default name";

Maksud dari kode tersebut jika value dari variabel guest bernilai null, maka value default name yang akan digunakan untuk mengisi value.

Dari variabel guestName. Tetapi bila value dari variabel guest tidak null, maka value dari variabel guestName akan diisi value dari variabel guest

  • Keyword !
1
2
3
String? guest;

String guestName = guest!;

Jika kamu yakin variabel tersebut valuenya tidak null saat runtime, maka gunakan keyword !. Keyword ! ini akan memaksa tipe data nullable menjadi non-nullable.

Namun keyword ini punya konsekuensi jika ternyata saat runtime valuenya null, maka akan terjadi erorr, jadi gunakan secara bijak.

Ada Satu Solusi Lagi, Yaitu Keyword Late

Sabar, akan saya bahas di artikel selanjutnya yah cil.

Author:Sazumi Viki
Link:https://www.sazumi.moe/Dart-Null-Safety-In-Flutter/
Licenses:By CC BY-NC-SA 3.0 CN Creative Commons
×