Я пытаюсь создать срез map[string]float64
s, используя метод, который я видел в другом посте: Golang создает срез карт .
Я пытался изменить его на map [string] interface {}, но затем он говорит
cannot use distmap (type map[string]float64) as type map[string]interface {} in append
Я относительно новичок в Go.Я думал, что интерфейс {} может содержать любое значение, почему он не может содержать float64 в этом случае?
minDistance := make([]map[string]interface{}, 0, factorial(len(cities)))
for _, city := range cities {
for k, v := range distances {
var c []string
var d []float64
if strings.HasPrefix(k, city) {
c = append(c, strings.Split(k, "+")[1])
d = append(d, v)
}
var min float64
index := 0
if units == "mi" {
min = 12450.5
} else {
min = 20037.5
}
for i, dist := range d {
if dist < min {
min = dist
index = i
}
}
distmap := map[string]float64{city + "+" + c[index]: min}
minDistance = append(minDistance, distmap)
}
// fmt.Printf("Distance between %s: %f %s\n", k, v, units)
}
Ошибка при компиляции:
.\main.go:151:42: []map[string]float64 literal is not a type