Alors que Golang est de plus en plus largement utilisé dans les applications d'entreprise, l'interrogation de données est également devenue une exigence importante. C'est différent de la manière d'interroger dans d'autres langages. Cet article explique comment utiliser Golang pour interroger avec différentes conditions.
Dans Golang, différents types de données sont disponibles, notamment :
Pour différents types de données, nous pouvons utiliser différentes méthodes de requête.
La requête à condition unique est la méthode de requête la plus simple et la plus courante. Par exemple, nous devons interroger les étudiants âgés de 18 ans à partir d’une liste d’étudiants.
type Student struct { Name string Age int } var students []Student // 初始化students for _, student := range students { if student.Age == 18 { fmt.Println(student.Name) } }
En définissant un type de structure Étudiant, puis en recherchant les étudiants dont l'âge est égal à 18 ans dans la boucle.
Si nous avons besoin de récupérer un champ de type chaîne, nous pouvons utiliser la fonction strings.HasPrefix ou strings.HasSuffix. Par exemple, pour interroger une liste de films pour les films dont les noms commencent par "Harry Potter":
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) } }
En utilisant la fonction strings.HasPrefix et les instructions conditionnelles de branche (instructions if), nous pouvons trouver ces films.
La requête multi-conditions doit prendre en compte plusieurs champs différents pour renvoyer un résultat. Par exemple, si nous avons une liste de commandes, nous devons récupérer les commandes pour une date précise et pour un client spécifique.
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) } }
Dans l'exemple ci-dessus, nous avons utilisé l'opérateur logique && pour vérifier si deux conditions sont vraies en même temps.
Dans certains cas, nous devons interroger des données dans une plage, ce qui nécessite l'utilisation d'opérateurs de comparaison. Par exemple, interrogez un élève dont les notes sont comprises entre 80 et 90 :
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) } }
Dans l'exemple ci-dessus, nous avons utilisé les opérateurs de comparaison >= et < car nous devons interroger les notes entre 80 et 90, et exclut 90.
La requête floue est une méthode de requête très courante, généralement utilisée pour rechercher des données contenant des caractères ou des chaînes spécifiques dans la chaîne. Par exemple, interrogez une liste de films pour les films contenant la chaîne "Avengers":
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) } }
Dans l'exemple ci-dessus, nous avons utilisé la fonction strings.Contains pour vérifier si la chaîne contient la sous-chaîne spécifiée.
En plus des méthodes ci-dessus, Golang fournit également davantage de méthodes de requête, telles que l'utilisation de la correspondance d'expressions régulières, l'utilisation d'une carte pour interroger des données, etc. En fonction des différents besoins et types de données, nous pouvons choisir différentes méthodes de requête.
Cet article présente différentes méthodes de requête dans Golang, notamment la requête à condition unique, la requête multi-conditions, la requête par plage, la requête floue, etc. Comprendre ces méthodes de requête peut nous aider à utiliser Golang pour interroger et traiter les données plus efficacement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!