在這個功能我得到的聲明和不使用「我不明白 - 我需要以某種方式標記爲'真的我用它'或什麼?去:var聲明,但沒有使用錯誤 - 如何解決它?
func getString(data map[string]interface{}, name string) (string, error) {
s := data[name]
if reflect.TypeOf(s).Kind() != reflect.String {
return s.(string), nil
}
return "", &apiError{1, "it's not a string"}
}
奇怪的是,我不會從這個函數得到錯誤:
func getInt(data map[string]interface{}, name string) (int, error) {
t := data[name]
if reflect.TypeOf(t).Kind() == reflect.Int {
return t.(int), nil
}
return 0, &apiError{1, "it's not an int"}
}
而且,到這些因素成一個單一功能的正確方法的任何想法將受到歡迎!
我無法重現您的錯誤。你確定沒有其他的東西導致它? https://play.golang.org/p/OpqqN7cBFZ – ale64bit
你是什麼意思「將這些因素納入單一功能」? 'getString'從地圖中讀取一個字符串並將其返回。 'getInt'從地圖中讀取一個int並返回它。在Go中,這些是非常不同的行爲。 –
你的代碼中可能有一個不同的「s」讓你感到困惑? (提示:使用更多描述性的varnames)。 –