Switch mit Ausdrücken
Teil des Abschnitts Grundlagen der GO-Journey von Coddy — Lektion 40 von 109.
Lass uns etwas über Switch-Ausdrücke in Go lernen, die es uns ermöglichen, einen Wert direkt in der Switch-Anweisung auszuwerten.
Zuerst schauen wir uns an, wie man eine switch-Anweisung mit einem Ausdruck verwendet, um zu prüfen, ob eine Zahl positiv, negativ oder null ist:
num := -5
switch {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Nach der Ausführung dieses Codes zeigt das Programm auf dem Bildschirm an:
Negative numberBeachten Sie, dass wir switch { ohne einen Wert dahinter verwenden. Das bedeutet, dass Go jeden case-Ausdruck als boolesche Bedingung auswertet. Da num den Wert -5 hat, wertet der zweite Fall num < 0 zu true aus, sodass „Negative number“ ausgegeben wird.
Wir können eine Variable auch direkt in der switch-Anweisung initialisieren. Sehen wir uns an, wie das funktioniert:
switch num := -5; {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Nach der Ausführung dieses Codes erhalten wir das gleiche Ergebnis:
Negative numberIn diesem Beispiel haben wir num direkt in der switch-Anweisung deklariert und initialisiert. Das Semikolon trennt die Initialisierung vom switch-Ausdruck (der hier leer ist). Dies macht unseren Code kompakter, während die gleiche Funktionalität beibehalten wird.
Aufgabe
Anfängerswitch-Ausdrucks in Go. Du musst den Code vervollständigen, um die Beschreibung eines Tages basierend auf seinem Namen mithilfe einer switch-Anweisung zu bestimmen.Eine Variable
dayName ist bereits mit dem Wert "Wednesday" definiert. Deine Aufgabe ist es, einen switch-Ausdruck zu verwenden, um die Variable description wie folgt zu setzen:-
"Start of the week" für Monday-
"Midweek" für Wednesday-
"Almost weekend" für Friday-
"Weekend" für Saturday oder Sunday-
"Regular day" für jeden anderen TagSpickzettel
Switch-Ausdrücke in Go ermöglichen es Ihnen, Bedingungen direkt in der switch-Anweisung auszuwerten.
Verwenden Sie switch { ohne Wert, um boolesche Ausdrücke in jedem Fall auszuwerten:
num := -5
switch {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Sie können eine Variable direkt in der switch-Anweisung initialisieren, indem Sie ein Semikolon verwenden, um die Initialisierung vom switch-Ausdruck zu trennen:
switch num := -5; {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Probier es selbst
package main
import "fmt"
func main() {
// Der Tagesname ist bereits definiert
dayName := "Wednesday"
// Variable zum Speichern der Beschreibung
var description string
// TODO: Schreiben Sie eine Switch-Anweisung, die die Beschreibung basierend auf dayName setzt
// Für Monday: "Start of the week"
// Für Wednesday: "Midweek"
// Für Friday: "Almost weekend"
// Für Saturday oder Sunday: "Weekend"
// Für jeden anderen Tag: "Regular day"
// Das Ergebnis ausgeben
fmt.Printf("%s is %s\n", dayName, description)
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Vergleichs- & logische Operatoren
Vergleichsoperatoren - Teil 1Vergleichsoperatoren - Teil 2Logischer UND-OperatorLogischer ODER-OperatorLogischer NICHT-OperatorGrundlagen der OperatorrangfolgeZusammenfassung - Vergleiche anstellen7Kontrollfluss: Schleifen
Die `for`-Schleife erklärtfor-Schleife - Grundlagenfor-Schleife - Nur BedingungDas `break`-SchlüsselwortDas `continue`-SchlüsselwortVerschachtelte SchleifenZusammenfassung - Aktionen wiederholen2Variablen und grundlegende Datentypen
Was ist eine VariableTypinferenz mit `:=`Ganzzahlen (int)GleitkommazahlenBoolesche WerteStringsZero ValuesKonstantenNamenskonventionenZusammenfassung - Variablen und Typen5Grundlagen der Ein- und Ausgabe
Formatierte AusgabeFormat-VerbenTypen ausgebenEinfache Benutzereingaben erhaltenZusammenfassung – Ein- und Ausgabe8Funktionen
Funktionen verstehenEine Funktion deklarierenFunktionen aufrufenFunktionsparameterEinen einzelnen Wert zurückgebenMehrere Werte zurückgebenBenannte RückgabewerteGrundlagen des Funktions-ScopesZusammenfassung – Wiederverwendbaren Code erstellen3Grundlegende Operatoren
Arithmetische OperatorenDivisionsoperatorDer Modulo-OperatorZuweisungsoperatorKombinierte ZuweisungsoperatorenInkrement und DekrementZusammenfassung - Berechnungen6Kontrollfluss: Bedingte Anweisungen
Die `if`-AnweisungDas `else`-SchlüsselwortDas `else if`-SchlüsselwortVariable Shadowing in `if`Variablen initialisierenDie `switch`-AnweisungSwitch mit AusdrückenSwitch ohne AusdruckDas `fallthrough`-SchlüsselwortZusammenfassung – Entscheidungen treffen9Zeiger
Was ist ein Zeiger?Deklarieren von ZeigervariablenDer AdressoperatorDereferenzieren von ZeigernVerwendung von Zeigern in FunktionenNil-ZeigerZusammenfassung – Zeiger verstehen12Zusammengesetzte Typen: Maps
Einführung in MapsDeklarieren von Map-LiteralenErstellen von Maps mit `make`Hinzufügen und Aktualisieren von Key-Value-PaarenZugriff auf Map-WerteÜberprüfen der Existenz von SchlüsselnLöschen von Map-EinträgenMap-LängeIterieren über MapsZusammenfassung – Key-Value-Speicher