2013-10-08 2 views
2

Моего тестового кода Handler здесь:Как преобразовать значение формы HTML в междунар в Golang

func defineHandler(w http.ResponseWriter, r *http.Request) { 
    a := strconv.ParseInt(r.FormValue("aRows")[0:], 10, 64); 
    b := r.FormValue("aRows"); 
    fmt.Fprintf(w, "aRows is: %s", b); 
} 

Обнаружена ошибка во время компиляции выходит как: «множественное значение strconv.ParseInt() в однозначный контекст "

Я считаю, что это связано с форматом информации в FormValue. Я просто не знаю, как это облегчить.

ответ

3

Это означает, что strconv.ParseInt имеет несколько возвращаемых значений (ИНТ и ошибку), так что вам нужно сделать:

a, err := strconv.ParseInt(r.FormValue("aRows")[0:], 10, 64); 
if err != nil { 
    // handle the error in some way 
} 
+0

Спасибо! Это мягко неловко, но очень полезно иметь в качестве напоминания ... – user2628946

+0

Не так смущающе. Они * могли * разработать язык так, чтобы ваш исходный код был правильным. 'ParseInt' на многих языках таков: если есть ошибка, она выдает исключение или возвращает' NaN' или что-то еще. Go разработан таким образом, чтобы побуждать вас думать об ошибках и обрабатывать их. Это требует некоторого привыкания. – MatrixFrog

Смежные вопросы