2016-04-29 16 views
6

Quando si tenta di utilizzare StrConv in una variabile passata tramite URL (GET denominati tempi variabili), GoLang non riesce in compilation precisando le ragioni seguenti:strconv.Atoi() errore di lancio quando somministrato una stringa

multiple-valore StrConv .Atoi() in un contesto unico valore

Tuttavia, quando lo faccio reflect.TypeOf ottengo stringa come il tipo, che alla mia comprensione è il tipo corretto di argomenti.

Ho cercato di risolvere questo problema per diverse ore. Sono nuovo per andare e sono diventato piuttosto frustrato con questo problema. Alla fine ho deciso di chiedere aiuto. Qualsiasi feedback sarebbe apprezzato.

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 
} 

risposta

25

L'errore vi sta dicendo che i due valori di ritorno da strconv.Atoi (int e error) sono utilizzati in un contesto singolo valore (l'incarico di time). Modificare il codice in:

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

Grazie a questo problema risolto. È piuttosto strano che le funzioni possano restituire più di un tipo di valore in Go. È importante quale sia l'ora e l'errore? –

+3

@deadbeef: più resi sono una delle caratteristiche di base della lingua. Suggerirei almeno di passare il [Tour of Go] (https://tour.golang.org/) per avere un'idea di come funziona la lingua – JimB

Problemi correlati