URLを介して渡された変数(timesという名前のGET変数)でstrconvを使用しようとすると、GoLangはコンパイル時に次のように失敗します。
単一値コンテキストでの複数値strconv.Atoi()
ただし、私が反映するとき、TypeOfは文字列を型として取得しますが、これは正しい型の引数です
私はこの問題を数時間修正しようとしています。私は新しいのですが、この問題にかなり不満を感じています。私は最終的に助けを求めることにしました。フィードバックをいただければ幸いです。
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
}
エラーは strconv.Atoi
(int
およびerror
)は、単一値コンテキスト(time
への割り当て)で使用されます。コードを次のように変更します。
time, err := strconv.Atoi(times)
if err != nil {
// handle error
}
これは回答されており、質問はかなり古いものですが、受け入れられた回答を補完するのは良いことだと思いました。
質問のように関数が複数の値を返す場合、値のいずれかが不要な場合は、次のように空白識別子_
を使用して破棄できます。
num, _ := strconv.Atoi(numAsString)
これは、変換された数値をnum
に保存しますが、空白の識別子に割り当てることでエラーを破棄します。
ただし、値が_
に割り当てられると、再び参照することはできません。つまり.
num, _ := strconv.Atoi(numAsString)
fmt.Println(_) // won't compile. cannot reference _