Da Golang immer häufiger in Anwendungen auf Unternehmensebene eingesetzt wird, ist auch die Abfrage von Daten zu einer wichtigen Anforderung geworden. Es unterscheidet sich von der Abfragemethode in anderen Sprachen. In diesem Artikel wird erläutert, wie Sie mit Golang Abfragen mit unterschiedlichen Bedingungen durchführen.
In Golang stehen verschiedene Datentypen zur Verfügung, hauptsächlich einschließlich:
Für verschiedene Datentypen können wir unterschiedliche Abfragemethoden verwenden.
Einzelne Bedingungsabfrage ist die einfachste und gebräuchlichste Abfragemethode. Beispielsweise müssen wir aus einer Schülerliste Schüler abfragen, die 18 Jahre alt sind.
type Student struct { Name string Age int } var students []Student // 初始化students for _, student := range students { if student.Age == 18 { fmt.Println(student.Name) } }
Indem Sie einen Strukturtyp „Student“ definieren und dann in der Schleife nach Studenten suchen, deren Alter 18 Jahre beträgt.
Wenn wir ein Feld vom Typ String abrufen müssen, können wir die Funktion strings.HasPrefix oder strings.HasSuffix verwenden. Um beispielsweise eine Filmliste nach Filmen abzufragen, deren Namen mit „Harry Potter“ beginnen:
type Movie struct { Name string Year int } var movies []Movie // 初始化movies for _, movie := range movies { if strings.HasPrefix(movie.Name, "Harry Potter") { fmt.Println(movie.Name) } }
Mit der strings.HasPrefix-Funktion und branchenbedingten Anweisungen (if-Anweisungen) können wir diese Filme finden.
Abfrage mit mehreren Bedingungen muss mehrere verschiedene Felder berücksichtigen, um ein Ergebnis zurückzugeben. Wenn wir beispielsweise eine Liste mit Bestellungen haben, müssen wir Bestellungen für ein bestimmtes Datum und für einen bestimmten Kunden abrufen.
type Order struct { OrderID int CustomerID int Date time.Time } var orders []Order // 初始化orders for _, order := range orders { if order.CustomerID == 123 && order.Date == time.Date(2021, 1, 1, 0, 0, 0, 0, time.Local) { fmt.Println(order.OrderID) } }
Im obigen Beispiel haben wir den logischen Operator && verwendet, um zu prüfen, ob zwei Bedingungen gleichzeitig wahr sind.
In einigen Fällen müssen wir Daten innerhalb eines Bereichs abfragen, was die Verwendung von Vergleichsoperatoren erfordert. Fragen Sie beispielsweise einen Schüler ab, dessen Noten zwischen 80 und 90 liegen:
type Score struct { Name string Grade float64 } var scores []Score // 初始化scores for _, score := range scores { if score.Grade >= 80 && score.Grade < 90 { fmt.Println(score.Name) } }
Im obigen Beispiel haben wir die Vergleichsoperatoren >= und < verwendet, da wir die Noten zwischen 80 und 90 abfragen müssen, wobei 90 nicht enthalten ist.
Fuzzy-Abfrage ist eine sehr häufige Abfragemethode, die normalerweise zum Suchen nach Daten verwendet wird, die bestimmte Zeichen oder Zeichenfolgen in der Zeichenfolge enthalten. Fragen Sie beispielsweise eine Filmliste nach Filmen ab, die die Zeichenfolge „Avengers“ enthalten:
type Movie struct { Name string Year int } var movies []Movie // 初始化movies for _, movie := range movies { if strings.Contains(movie.Name, "Avengers") { fmt.Println(movie.Name) } }
Im obigen Beispiel haben wir die Funktion strings.Contains verwendet, um zu überprüfen, ob die Zeichenfolge die angegebene Teilzeichenfolge enthält.
Zusätzlich zu den oben genannten Methoden bietet Golang auch weitere Abfragemethoden an, z. B. die Verwendung eines regulären Ausdrucksabgleichs, die Verwendung einer Karte zum Abfragen von Daten usw. Abhängig von den unterschiedlichen Anforderungen und Datentypen können wir verschiedene Abfragemethoden auswählen.
In diesem Artikel werden verschiedene Abfragemethoden in Golang vorgestellt, darunter Einzelbedingungsabfrage, Mehrfachbedingungsabfrage, Bereichsabfrage, Fuzzy-Abfrage usw. Das Verständnis dieser Abfragemethoden kann uns helfen, mit Golang Daten effizienter abzufragen und zu verarbeiten.
Das obige ist der detaillierte Inhalt vonGolang-Abfrage mit unterschiedlichen Bedingungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!