Maison  >  Article  >  développement back-end  >  Go développement linguistique du système de cuisson porte-à-porte : Comment implémenter la fonction de recherche de plats ?

Go développement linguistique du système de cuisson porte-à-porte : Comment implémenter la fonction de recherche de plats ?

王林
王林original
2023-11-01 08:32:21619parcourir

Go développement linguistique du système de cuisson porte-à-porte : Comment implémenter la fonction de recherche de plats ?

Go langage développement du système de cuisson porte-à-porte : Comment implémenter la fonction de recherche de plat ?

Introduction :
Avec la popularité des services à emporter et en porte-à-porte, de plus en plus de personnes choisissent de déguster de délicieux plats à la maison. En réponse à cette demande, le système de cuisson porte-à-porte est né. Lors du développement d’un tel système, la mise en œuvre de la fonction de recherche de paraboles constitue un élément très important. Cet article utilisera le langage Go comme exemple pour présenter en détail comment implémenter une fonction de recherche de plat et fournir des exemples de code correspondants.

1. Analyse des exigences :
Avant de mettre en œuvre la fonction de recherche de plats, nous devons d'abord clarifier les exigences et les fonctions du système. Dans le système de cuisson porte-à-porte, les utilisateurs doivent rechercher les plats qui leur conviennent en fonction du nom du plat, des ingrédients, du goût et d'autres conditions. Par conséquent, notre fonction de recherche de plat doit répondre aux exigences suivantes :

  1. Prend en charge la recherche par nom de plat : les utilisateurs peuvent trouver rapidement le plat correspondant en fonction du nom du plat saisi.
  2. Prend en charge la recherche par ingrédient : les utilisateurs peuvent saisir un certain ingrédient et le système renverra les plats contenant cet ingrédient.
  3. Prend en charge la recherche par goût : les utilisateurs peuvent choisir leur goût préféré et le système renverra les plats correspondants.

2. Conception de la base de données :
Afin de mettre en œuvre la fonction de recherche de plats, nous devons concevoir une structure de base de données appropriée. Dans cet exemple, nous utilisons la base de données MySQL et créons une table nommée « plats » pour stocker les informations sur les plats. La structure du tableau est la suivante :

CREATE TABLE dishes (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    ingredients VARCHAR(200) NOT NULL,
    taste VARCHAR(50) NOT NULL
);

3. Implémentation du code :
Après avoir compris les exigences et la structure de la base de données, nous pouvons commencer à implémenter la fonction de recherche de plats. Ce qui suit est un exemple de code simple en langage Go pour montrer comment implémenter la fonction de recherche de plat :

package main

import (
    "database/sql"
    "fmt"
    "log"
    "strings"

    _ "github.com/go-sql-driver/mysql"
)

type Dish struct {
    ID          int    `json:"id"`
    Name        string `json:"name"`
    Ingredients string `json:"ingredients"`
    Taste       string `json:"taste"`
}

func main() {
    // 连接数据库
    db, err := sql.Open("mysql", "用户名:密码@tcp(localhost:3306)/数据库名")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    // 搜索菜品
    results, err := searchDish(db, "宫保鸡丁", "", "")
    if err != nil {
        log.Fatal(err)
    }

    // 打印搜索结果
    for _, dish := range results {
        fmt.Printf("ID: %d, 菜名: %s, 食材: %s, 口味: %s
", dish.ID, dish.Name, dish.Ingredients, dish.Taste)
    }
}

func searchDish(db *sql.DB, name, ingredients, taste string) ([]Dish, error) {
    query := "SELECT * FROM dishes WHERE 1=1"

    // 构建查询条件
    if name != "" {
        query += fmt.Sprintf(" AND name LIKE '%s'", "%"+name+"%")
    }
    if ingredients != "" {
        query += fmt.Sprintf(" AND ingredients LIKE '%s'", "%"+ingredients+"%")
    }
    if taste != "" {
        query += fmt.Sprintf(" AND taste = '%s'", taste)
    }

    // 执行查询
    rows, err := db.Query(query)
    if err != nil {
        return nil, err
    }
    defer rows.Close()

    // 解析查询结果
    var results []Dish
    for rows.Next() {
        var dish Dish
        err := rows.Scan(&dish.ID, &dish.Name, &dish.Ingredients, &dish.Taste)
        if err != nil {
            return nil, err
        }
        results = append(results, dish)
    }

    return results, nil
}

Dans le code ci-dessus, nous utilisons d'abord la fonction database/sqlgithub.com/go-sql-driver/mysql包来连接MySQL数据库。然后,我们实现了一个searchDish pour effectuer une recherche de plat. Dans cette fonction, nous construisons une instruction de requête SQL dynamique basée sur l'entrée de l'utilisateur et exécutons l'opération de requête. Enfin, nous imprimons les informations sur la parabole obtenues en parcourant les résultats de la requête.

4. Résumé :
Grâce aux exemples de code et aux instructions ci-dessus, nous comprenons comment utiliser le langage Go pour implémenter la fonction de recherche de plats. Grâce à une analyse raisonnable de la demande et à la conception d’une base de données, combinées à la mise en œuvre de codes, nous pouvons créer un système de cuisson porte-à-porte entièrement fonctionnel. J'espère que cet article pourra être utile à tout le monde dans la mise en œuvre de la fonction de recherche de plats dans le développement du langage Go.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn