1. ホーム
  2. string

[解決済み] strconv.Atoi()で文字列を指定するとエラーが発生する。

2022-03-10 18:05:10

質問

URLで渡された変数(GET変数名times)に対してstrconvを使おうとすると、GoLangは以下のように表示され、コンパイルに失敗します。

単一値のコンテキストで複数値のstrconv.Atoi()

しかし、reflect.TypeOfを実行すると、私の理解では正しい引数の型であるstringが得られます。

この問題を解決するために数時間試行錯誤しています。私は碁を始めたばかりで、この問題にはかなりいらいらさせられています。最終的に助けを求めることにしました。どんなフィードバックでも結構です。

func numbers(w http.ResponseWriter, req *http.Request) {
  fmt.Println("GET params were:", req.URL.Query()); 
  times := req.URL.Query()["times"][0]
  time := strconv.Atoi(times)

  reflect.TypeOf(req.URL.Query()["times"][0]) // returns string
}

解決方法は?

の2つの返り値が異なることを告げています。 strconv.Atoi ( interror への代入) は、単一の値コンテキストで使用されます。 time ). というコードに変更します。

   time, err := strconv.Atoi(times)
   if err != nil {
      // Add code here to handle the error!
   }

を使用します。 空白の識別子 を無視するために error の戻り値です。

   time, _ := strconv.Atoi(times)