`switch` z wyrażeniami
Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 40 z 109.
Dowiedzmy się więcej o wyrażeniach switch w Go, które pozwalają nam bezpośrednio obliczyć wartość w instrukcji switch.
Najpierw zobaczmy, jak użyć instrukcji switch z wyrażeniem, aby sprawdzić, czy liczba jest dodatnia, ujemna czy równa zero:
num := -5
switch {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Po wykonaniu tego kodu program wyświetli na ekranie:
Negative numberZauważ, że używamy switch { bez żadnej wartości po nim. Oznacza to, że Go będzie oceniać każde wyrażenie w klauzuli case jako warunek logiczny. Ponieważ num wynosi -5, drugi warunek num < 0 ma wartość true, więc zostanie wypisany tekst „Negative number”.
Możemy też zainicjalizować zmienną bezpośrednio w instrukcji switch. Zobaczmy, jak to działa:
switch num := -5; {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Po wykonaniu tego kodu otrzymujemy ten sam wynik:
Negative numberW tym przykładzie zadeklarowaliśmy i zainicjalizowaliśmy num bezpośrednio w instrukcji switch. Średnik oddziela inicjalizację od wyrażenia switch (które jest tutaj puste). Dzięki temu nasz kod jest bardziej zwięzły, a jego funkcjonalność pozostaje taka sama.
Wyzwanie
Początkującyswitch w Go. Musisz uzupełnić kod, aby określić opis dnia na podstawie jego nazwy za pomocą instrukcji switch.Zmienna
dayName jest już zdefiniowana i ma wartość "Wednesday". Twoim zadaniem jest użyć wyrażenia switch, aby ustawić zmienną description na:-
"Start of the week" dla poniedziałku-
"Midweek" dla środy-
"Almost weekend" dla piątku-
"Weekend" dla soboty lub niedzieli-
"Regular day" dla każdego innego dniaSpróbuj swoich sił
package main
import "fmt"
func main() {
// Nazwa dnia jest już zdefiniowana
dayName := "Wednesday"
// Zmienna do przechowywania opisu
var description string
// TODO: Napisz instrukcję switch, która ustawia opis na podstawie dayName
// Dla poniedziałku: "Start of the week"
// Dla środy: "Midweek"
// Dla piątku: "Almost weekend"
// Dla soboty lub niedzieli: "Weekend"
// Dla każdego innego dnia: "Regular day"
// Wyświetl wynik
fmt.Printf("%s is %s\n", dayName, description)
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównania – część 1Operatory porównania – część 2Logiczny operator ANDLogiczny operator ORLogiczny operator NOTPodstawy kolejności wykonywania operatorówPodsumowanie – porównywanie7Sterowanie przepływem: pętle
Jak działa pętla `for`Pętla `for` — podstawyPętla `for` — tylko warunekSłowo kluczowe `break`Słowo kluczowe `continue`Pętle zagnieżdżonePodsumowanie — powtarzanie działań2Zmienne i podstawowe typy danych
Czym jest zmiennaWnioskowanie o typie za pomocą `:=`Liczby całkowite (int)Liczby zmiennoprzecinkoweWartości logiczneCiągi znakówWartości zeroweStałeKonwencje nazewnictwaPodsumowanie – zmienne i typy5Podstawowe wejście/wyjście
Formatowane wyjścieSpecyfikatory formatuWyświetlanie typówPobieranie podstawowych danych od użytkownikaPodsumowanie — wejście i wyjście8Funkcje
Zrozumienie funkcjiDeklarowanie funkcjiWywoływanie funkcjiParametry funkcjiZwracanie jednej wartościZwracanie wielu wartościNazwane wartości zwracanePodstawy zakresu funkcjiPodsumowanie — tworzenie wielokrotnego użytku kodu11Typy złożone: wycinki
Wprowadzenie do wycinkówDeklarowanie literałów wycinkówTworzenie wycinków za pomocą `make`Długość a pojemność wycinkaDostęp do elementów wycinkaDodawanie elementówWycinanie z istniejących wycinków i tablicIterowanie po wycinkachKopiowanie wycinkówPodsumowanie — listy dynamiczne3Podstawowe operatory
Operatory arytmetyczneOperator dzieleniaOperator moduloOperator przypisaniaOperatory przypisania z działaniemZwiększanie i zmniejszaniePowtórka – obliczenia6Sterowanie przepływem: instrukcje warunkowe
Instrukcja `if`Słowo kluczowe `else`Słowo kluczowe `else if`Przesłanianie zmiennych w `if`Inicjalizacja zmiennychInstrukcja `switch``switch` z wyrażeniami`switch` bez wyrażeniaSłowo kluczowe `fallthrough`Podsumowanie — podejmowanie decyzjiPoćwicz samodzielnie: Kompilator Go online