Golang 初心者向けの質問集: よくある問題を解決し、改善に向けて進む

王林
リリース: 2024-05-06 21:51:01
オリジナル
706 人が閲覧しました

Golang 初心者が直面する一般的な問題に対応して、この記事では明確な解決策を提供します。type Person struct { Name string; Age int }; マッピングを使用して構造を定義および初期化します。 : m: = make(map[string]int); m["Alice"] = 10 可変数のパラメータの処理: func sumAll(...int) int ファイルの読み取りと書き込み: ファイルのオープン、書き込み、読み取り 作成およびGoroutine の使用: go concurrentFunc(i)

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

Golang 初心者向けの質問集: 一般的な問題を解決し、改善に向けて進む

初心者としてGolang は非常に難しく、さまざまな問題に遭遇しやすいです。この記事は、最も一般的なフラストレーションのいくつかに対する明確でわかりやすい解決策を提供することで、初心者が上達するのに役立ちます。

1. 構造体を定義して初期化するにはどうすればよいですか?

type Person struct {
  Name string
  Age  int
}

p := Person{"John Doe", 30}
ログイン後にコピー

2. マッピング(地図)の使い方は?

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

fmt.Println(m["Alice"]) // 输出: 10
ログイン後にコピー

3. 可変数のパラメータを受け取るにはどうすればよいですか?

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. ファイルの読み取りと書き込みの方法は?

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.Goroutine を作成して使用するにはどうすればよいですか?

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

for i := 0; i < 5; i++ {
  go concurrentFunc(i)
}
// 同时输出 0、1、2、3、4
ログイン後にコピー

実用的なケース

ユーザーがタスクを管理できるようにする単純な RESTful API を作成するとします。

1. タスク構造を定義します:

type Task struct {
  ID   int
  Name string
  Desc string
}
ログイン後にコピー

2. タスク コレクションを作成します:

tasks := make([]Task, 0)
ログイン後にコピー

3プロセス作成タスク要求:

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. プロセス取得タスク要求:

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
  }
}
ログイン後にコピー

5. HTTP サーバーを開始します。 # れー

以上がGolang 初心者向けの質問集: よくある問題を解決し、改善に向けて進むの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート