Podstawowe bezpieczeństwo null
Część sekcji Podstawy ścieżki Dart w Coddy. Lekcja 14 z 94.
Bezpieczeństwo wartości null pomaga zapobiegać nieoczekiwanym awariom aplikacji, kontrolując, które zmienne mogą być puste (null).
Domyślnie zmienne muszą zawierać wartość:
void main() {
String name = 'Dart';
print(name); // Wypisuje: Dart
// To spowodowałoby problemy:
// name = null; // Niedozwolone
}Dodaj ? po typie, aby zezwolić na wartości null:
void main() {
String? name = 'Dart';
print(name); // Wyświetla: Dart
// Teraz możemy przypisać null
name = null;
print(name); // Wyświetla: null
}Możesz deklarować zmienne dopuszczające wartość null dowolnego typu:
void main() {
int? age; // Brak wartości początkowej, domyślnie null
double? price = 19.99;
bool? isAvailable = true;
print(age); // Wyświetla: null
print(price); // Wyświetla: 19.99
print(isAvailable); // Wyświetla: true
// Możemy zmienić dowolną z tych wartości na null
price = null;
isAvailable = null;
}
Bezpieczeństwo obsługi wartości null pomaga chronić aplikację przed nieoczekiwanymi awariami, które występują, gdy kod próbuje użyć wartości null w operacjach.
Wyzwanie
PoczątkującyUtwórz program w Dart, który demonstruje podstawowe bezpieczeństwo null za pomocą operatora ?:
- Zadeklaruj zmienną typu String o nazwie
usernamei ustaw ją nanullza pomocą operatora bezpieczeństwa null?(String?) - Zadeklaruj zmienną typu int o nazwie
userAgei ustaw ją nanullza pomocą operatora bezpieczeństwa null - Wypisz obie zmienne z etykietami w DOKŁADNIE następującym formacie:
Username: null
User age: nullNastępnie:
- Przypisz wartość
"DartLearner"do zmiennejusername - Przypisz wartość
25do zmiennejuserAge - Wypisz ponownie obie zmienne w DOKŁADNIE takim samym formacie jak poprzednio
Twój wynik musi być zgodny z dokładnym formatem pokazanym powyżej.
Spróbuj swoich sił
void main() {
// Zadeklaruj tutaj zmienne, które mogą mieć wartość null
String? username = ?;
int? userAge = ?;
// Wypisz wartości początkowe wraz z etykietami
print("Username: " + username.toString());
print("User age: " + userAge.toString());
// Przypisz zmiennym nowe wartości
username = ?;
userAge = ?;
// Wypisz zaktualizowane wartości z tymi samymi etykietami
print("Username: " + username.toString());
print("User age: " + userAge.toString());
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory – część 2
Operatory porównaniaLogiczne ANDLogiczne ORLogiczne NOTOperatory sprawdzania typuPodsumowanie – porównywanie7Praca z ciągami znaków
Łączenie ciągów znakówInterpolacja ciągów znakówCiągi wielolinioweWłaściwości ciągów znakówPodstawowe metody ciągów znaków10Kolekcje — podstawy map
Czym są mapy?Tworzenie mapyDostęp do wartości za pomocą kluczaPary klucz-wartośćPobieranie rozmiaru mapyPobieranie kluczyPobieranie wartościSprawdzanie, czy klucz istnieje13Bezpieczeństwo wartości null w szczegółach
Zrozumienie wartości nullTypy dopuszczające nullTypy niedopuszczające nullOperator wymuszający wartośćInicjalizacja opóźnionaPodsumowanie — bezpieczna obsługa wartości null2Zmienne i podstawowe typy danych
Czym są zmienne?Łańcuchy znakówLiczby całkowite (int)Liczby zmiennoprzecinkowe (double)Wartości logiczne (bool)Wnioskowanie o typie za pomocą „var”Zmienne finalZmienne stałeKonwencje nazewnictwaPodstawowe bezpieczeństwo nullPodsumowanie — deklarowanie zmiennych8Przepływ sterowania — pętle
Pętla „for”Pętla „while”Pętla „do-while”Używanie „break” w pętlachUżywanie „continue” w pętlachPodsumowanie — powtarzanie kodu3Operatory, część 1
Operatory arytmetyczneDzielenie całkowiteOperator moduloInkrementacja i dekrementacjaSkrócone operatory przypisaniaPodsumowanie — proste obliczenia6Sterowanie przepływem — podejmowanie decyzji
Instrukcja „if”Instrukcja „else”Instrukcja „else if”Podsumowanie — proste decyzjeZagnieżdżone instrukcje „if”Instrukcja „switch”9Kolekcje — podstawy list
Czym są listy?Tworzenie listyDostęp według indeksuPobieranie długości listyDodawanie elementówUsuwanie elementówSprawdzanie, czy lista jest pustaIterowanie po liście12Funkcje zaawansowane
Opcjonalne parametry pozycyjneParametry nazwaneWymagane parametry nazwaneDomyślne wartości parametrówPodsumowanie — parametry funkcji15Projekt: Prosty kalkulator
KonfiguracjaDeklarowanie liczbyPoćwicz samodzielnie: Kompilator Dart online