1 回答

TA貢獻1824條經(jīng)驗 獲得超6個贊
您正在使用正則表達式來捕獲輸入,同時使用fmt.Scanff. fmt.Scanff不支持正則表達式。如果要使用正則表達式,請使用regexp包。
或者你可以使用一個簡單的strings.Split并將輸入解析為正確的類型:
func (o *Origin) ParseString2(str string) error {
if str == "" {
return nil
}
parts := strings.Split(str, ":")
if len(parts) != 4 {
return errors.New("expected format '...:...:...:...")
}
f, err := strconv.ParseFloat(parts[0], 64)
if err != nil {
return err
}
o.Lat = f
f, err = strconv.ParseFloat(parts[1], 64)
if err != nil {
return err
}
o.Lng = f
o.Address = parts[2]
o.Name = parts[3]
return nil
}
- 1 回答
- 0 關(guān)注
- 116 瀏覽
添加回答
舉報