Go pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi carian hidangan?
Pengenalan:
Dengan populariti perkhidmatan bawa pulang dan dari pintu ke pintu, semakin ramai orang memilih untuk menikmati makanan yang lazat di rumah. Sebagai tindak balas kepada permintaan ini, sistem memasak dari pintu ke pintu wujud. Apabila membangunkan sistem sedemikian, pelaksanaan fungsi carian hidangan adalah bahagian yang sangat penting. Artikel ini akan menggunakan bahasa Go sebagai contoh untuk memperkenalkan secara terperinci cara melaksanakan fungsi carian hidangan dan memberikan contoh kod yang sepadan.
1. Analisis keperluan:
Sebelum melaksanakan fungsi carian hidangan, kami perlu menjelaskan terlebih dahulu keperluan dan fungsi sistem. Dalam sistem memasak dari pintu ke pintu, pengguna perlu mencari hidangan yang sesuai dengan mereka berdasarkan nama hidangan, ramuan, rasa dan keadaan lain. Oleh itu, fungsi carian hidangan kami perlu memenuhi keperluan berikut:
2. Reka bentuk pangkalan data:
Untuk melaksanakan fungsi carian hidangan, kita perlu mereka bentuk struktur pangkalan data yang sesuai. Dalam contoh ini, kami menggunakan pangkalan data MySQL dan mencipta jadual bernama "hidangan" untuk menyimpan maklumat hidangan. Struktur jadual adalah seperti berikut:
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. Pelaksanaan kod:
Setelah memahami keperluan dan struktur pangkalan data, kita boleh mula melaksanakan fungsi carian hidangan. Berikut ialah kod contoh bahasa Go yang mudah untuk menunjukkan cara melaksanakan fungsi carian hidangan:
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 }
Dalam kod di atas, kami mula-mula menggunakan fungsi database/sql
和github.com/go-sql-driver/mysql
包来连接MySQL数据库。然后,我们实现了一个searchDish
untuk melakukan carian hidangan. Dalam fungsi ini, kami membina pernyataan pertanyaan SQL dinamik berdasarkan input pengguna dan melaksanakan operasi pertanyaan. Akhir sekali, kami mencetak maklumat hidangan yang diperolehi dengan merentasi hasil pertanyaan.
4. Ringkasan:
Melalui contoh dan arahan kod di atas, kami memahami cara menggunakan bahasa Go untuk melaksanakan fungsi carian hidangan. Melalui analisis permintaan yang munasabah dan reka bentuk pangkalan data, digabungkan dengan pelaksanaan kod, kami boleh mencipta sistem memasak dari pintu ke pintu yang berfungsi sepenuhnya. Saya harap artikel ini dapat membantu semua orang dalam melaksanakan fungsi carian hidangan dalam pembangunan bahasa Go.
Atas ialah kandungan terperinci Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi carian hidangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!