2016-04-29 4 views
6

与えられたときにエラーを投げる:strconv.Atoi()(回という名前の変数をGET)URL経由で渡された変数には、StrConvを使用しようと、GoLangは、次のことを述べて、コンパイルに失敗した文字列

複数値のStrConv私はreflect.TypeOfを行う際に単一値のコンテキストで.Atoi()

はしかし、私は私の理解に引数の正しいタイプであるタイプ、などの文字列を取得します。

私はこの問題を数時間修正しようとしています。私は新しいことをして、この問題でかなり不満を抱いてしまった。ついに私は助けを求めることにしました。どんなフィードバックも高く評価されます。

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 
} 

答えて

25

エラーがstrconv.Atoiinterror)から2つの戻り値が単一の値のコンテキスト(timeへの割り当て)で使用されていることを語っています。コードを次のように変更してください。

time, err := strconv.Atoi(times) 
    if err != nil { 
     // handle error 
    } 
+0

ありがとうございました。関数がGoで複数の型の値を返すことができるのはかなり奇妙です。どの注文時刻とエラーがあるかは重要ですか? –

+3

@deadbeef:複数のリターンが言語の基本機能の1つです。私は少なくとも、言語の仕組みを理解するために[ツアー・オブ・ゴー](https://tour.golang.org/)に行ってみることをお勧めします – JimB

関連する問題