Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Koleksi soalan novis Golang: Selesaikan masalah biasa dan bergerak ke arah penambahbaikan

Koleksi soalan novis Golang: Selesaikan masalah biasa dan bergerak ke arah penambahbaikan

王林
王林asal
2024-05-06 21:51:01694semak imbas

Mensasarkan masalah biasa orang baru Golang, artikel ini menyediakan penyelesaian yang jelas: tentukan dan mulakan struktur: taip Person struct { Nama rentetan umur }; = make (map[string]int); m["Alice"] = 10 Kendalikan nombor pembolehubah parameter: func sumAll(...int) int Baca dan tulis fail: fail buka, tulis, baca Cipta dan gunakan Goroutine: go concurrentFunc (i)

Golang 新手疑问集锦:解决常见困扰,迈向精进

Koleksi soalan novis Golang: Selesaikan masalah biasa dan bergerak ke arah penambahbaikan

Sebagai orang baru di Golang, mudah untuk menghadapi pelbagai masalah. Artikel ini akan membantu pemula menjadi lebih baik dengan menyediakan penyelesaian yang jelas dan mudah difahami kepada beberapa kekecewaan yang paling biasa.

1. Bagaimana untuk menentukan dan memulakan struktur?

type Person struct {
  Name string
  Age  int
}

p := Person{"John Doe", 30}

2. Bagaimana untuk menggunakan Peta?

m := make(map[string]int)
m["Alice"] = 10
m["Bob"] = 20

fmt.Println(m["Alice"]) // 输出: 10

3. Bagaimana untuk menerima bilangan parameter yang berubah-ubah?

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. Bagaimana membaca dan menulis fail?

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. Bagaimana untuk mencipta dan menggunakan Goroutine?

func concurrentFunc(i int) {
  fmt.Println(i)
}

for i := 0; i < 5; i++ {
  go concurrentFunc(i)
}
// 同时输出 0、1、2、3、4

Kes praktikal

Andaikan kita ingin mencipta API RESTful mudah yang membolehkan pengguna mengurus tugas.

1. Tentukan struktur tugas:

type Task struct {
  ID   int
  Name string
  Desc string
}

2 Buat koleksi tugasan:

tasks := make([]Task, 0)

3 5 . Mulakan pelayan HTTP:

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")
}

Atas ialah kandungan terperinci Koleksi soalan novis Golang: Selesaikan masalah biasa dan bergerak ke arah penambahbaikan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn