Visant les problèmes courants des novices de Golang, cet article propose une solution claire : définissez et initialisez la structure : tapez Person struct { Name string; Age Person p = {"John Doe", 30} use mapping: m : = make (map[string]int); m["Alice"] = 10 Gérer un nombre variable de paramètres : func sumAll(...int) int Lire et écrire des fichiers : fichier ouvert, écrire, lire Créer et utiliser Goroutine : go concurrentFunc (i)
Collection de questions pour novices en Golang : Résoudre les problèmes courants et progresser vers l'amélioration
En tant que novice en Golang, il est facile de rencontrer divers problèmes. Cet article aidera les débutants à s'améliorer en fournissant des solutions claires et faciles à comprendre à certaines des frustrations les plus courantes.
1. Comment définir et initialiser la structure ?
type Person struct { Name string Age int } p := Person{"John Doe", 30}
2. Comment utiliser Map ?
m := make(map[string]int) m["Alice"] = 10 m["Bob"] = 20 fmt.Println(m["Alice"]) // 输出: 10
3. Comment recevoir un nombre variable de paramètres ?
func sumAll(numbers ...int) int { total := 0 for _, num := range numbers { total += num } return total } result := sumAll(1, 2, 3, 4, 5) // result = 15
4. Comment lire et écrire des fichiers ?
f, err := os.Open("test.txt") if err != nil { panic(err) } defer f.Close() _, err = f.Write([]byte("Hello, world!")) if err != nil { panic(err) } b := make([]byte, 10) _, err = f.Read(b) if err != nil { panic(err) } fmt.Println(string(b)) // 输出: "Hello, wo"
5. Comment créer et utiliser Goroutine ?
func concurrentFunc(i int) { fmt.Println(i) } for i := 0; i < 5; i++ { go concurrentFunc(i) } // 同时输出 0、1、2、3、4
Cas pratique
Supposons que nous souhaitions créer une API RESTful simple qui permet aux utilisateurs de gérer des tâches.
1. Définir la structure des tâches :
type Task struct { ID int Name string Desc string }
2. Créer une collection de tâches :
tasks := make([]Task, 0)
3. Traiter la demande de création de tâche :
func createTask(w http.ResponseWriter, r *http.Request) { var task Task if err := json.NewDecoder(r.Body).Decode(&task); err != nil { http.Error(w, "Invalid JSON", http.StatusBadRequest) return } tasks = append(tasks, task) fmt.Fprint(w, "Task created successfully") }
4. 5 . Démarrez le serveur HTTP :
func getTasks(w http.ResponseWriter, r *http.Request) { enc := json.NewEncoder(w) if err := enc.Encode(tasks); err != nil { http.Error(w, "Failed to encode tasks", http.StatusInternalServerError) return } }
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!