Dostęp uwzględniający null
Część sekcji Podstawy ścieżki Dart w Coddy. Lekcja 29 z 94.
Operator dostępu uwzględniający wartość null (?.) umożliwia bezpieczny dostęp do właściwości obiektów, które mogą mieć wartość null, zapobiegając błędom w czasie wykonywania.
void main() {
String? name = 'Dart';
int? length = name?.length;
print('Name: $name');
print('Length: $length');
}W przypadku wartości null zwraca null zamiast powodować awarię:
void main() {
String? name = null;
int? length = name?.length;
print('Name: $name');
print('Length: $length');
}Wyzwanie
ŁatwyUtwórz program w Dart, który demonstruje operator dostępu uwzględniający null (?.) na przykładzie postaci z gry:
- Utwórz zmienną typu String dopuszczającą null o nazwie
playerNamei przypisz jej wartość null - Utwórz zmienną typu int dopuszczającą null o nazwie
playerScorei przypisz jej wartość 100 - Użyj operatora dostępu uwzględniającego null (
?.), aby uzyskać długość wartości playerName i zapisać ją w zmiennej o nazwienameLength - Wypisz następujący komunikat:
Player name length: X(gdzie X to wartość nameLength) - Zmień wartość
playerNamena "Champion" - Ponownie użyj operatora dostępu uwzględniającego null, aby uzyskać zaktualizowaną długość i zapisać ją w
nameLength - Wypisz zaktualizowany komunikat:
Player name length: X(gdzie X to nowa wartość) - Wypisz wynik gracza w tym formacie:
Player score: 100
Spróbuj swoich sił
void main() {
// Zadeklaruj tutaj zmienne, które mogą mieć wartość null
String? playerName = _;
int? playerScore = _;
// Pobierz długość playerName za pomocą operatora ?.
int? nameLength = playerName_.length;
// Wyświetl początkową długość imienia
print("Player name length: ${nameLength}");
// Zaktualizuj playerName
playerName = _;
// Pobierz zaktualizowaną długość za pomocą operatora ?.
nameLength = playerName_.length;
// Wyświetl zaktualizowaną długość imienia
print("Player name length: ${nameLength}");
// Wyświetl wynik gracza
print("Player score: ${playerScore}");
}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