Heim  >  Artikel  >  Backend-Entwicklung  >  Golang-Abfrage mit unterschiedlichen Bedingungen

Golang-Abfrage mit unterschiedlichen Bedingungen

PHPz
PHPzOriginal
2023-05-09 21:58:07611Durchsuche

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.

Typen von Golang

In Golang stehen verschiedene Datentypen zur Verfügung, hauptsächlich einschließlich:

  • string: String-Typ
  • int: Integer-Typ
  • float: Gleitkommatyp
  • bool: Boolescher Typ
  • struct: Strukturtyp

Für verschiedene Datentypen können wir unterschiedliche Abfragemethoden verwenden.

Einzelne Bedingungsabfrage

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

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.

Bereichsabfrage

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

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.

Andere Abfragemethoden

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.

Fazit

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Golang1.12-InstallationNächster Artikel:Golang1.12-Installation