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

王林
Lepaskan: 2024-05-06 21:51:01
asal
672 orang telah melayarinya

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}
Salin selepas log masuk

2. Bagaimana untuk menggunakan Peta?

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

fmt.Println(m["Alice"]) // 输出: 10
Salin selepas log masuk

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
Salin selepas log masuk

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"
Salin selepas log masuk

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
Salin selepas log masuk

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
}
Salin selepas log masuk

2 Buat koleksi tugasan:

tasks := make([]Task, 0)
Salin selepas log masuk

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")
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!