Я новичок в golang, и у меня есть эта проблема.
package main
import "fmt"
func main() {
Problem := map[string]interface{}{
"Alan": map[string]interface{}{
"Particulars": map[string]interface{}{
"Age": "28",
},
},
"Sophia": map[string]interface{}{
"Particulars": map[string]interface{}{
"Age": "18",
},
},
}
Ages := []string{}
for key, value := range Problem {
fmt.Println(key)
fmt.Println(value)
Ages = value["Age"]
}
}
Я хочу использовать доблесть «Века» для чего-то, как я могу это сделать?
Значение типа interface{} может быть значением любого типа. Используйте утверждение типа, чтобы убедиться, что тип значения действителен для операции перед доступом к нему:
package main
import "fmt"
func main() {
Problem := map[string]interface{}{
"Alan": map[string]interface{}{
"Particulars": map[string]interface{}{
"Age": "28",
},
},
"Sophia": map[string]interface{}{
"Particulars": map[string]interface{}{
"Age": "18",
},
},
}
Ages := []string{}
for key, value := range Problem {
fmt.Println(key)
fmt.Println(value)
a, ok := value.(map[string]interface{})["Particulars"].(map[string]interface{})["Age"].(string)
if ok {
Ages = append(Ages, a)
}
}
fmt.Println(Ages)
}