Я пытаюсь определить массив в структуре в Go, массив устройств должен содержать 3 элемента строк типа, но я не могу понять, как распечатать значения массива устройств
Ниже выводятся «строка несовпадающих типов и [2] строка». Какие-нибудь намеки?
type Nodes struct {
Nodes []Node `json:"nodes"`
}
type Node struct {
devices [2]string `json:"devices"`
}
var nodes Nodes
fmt.Println("Device: %+v" + nodes.Nodes[i].devices)



Ваша ошибка связана с тем, что вы пытаетесь объединить string и [2]string:
"Device: %+v" + nodes.Nodes[i].devices
В частности, "Device: %+v" - это строка, а nodes.Nodes[i].devices - это [2]string.
Но на более высоком уровне это результат неправильного использования fmt.Println, что проявляется в использовании глагола форматирования %+v, что не имеет смысла в контексте Println. Вероятно, вам нужен fmt.Printf:
fmt.Printf("Device: %+v\n", nodes.Nodes[0].devices)
Вы должны использовать fmt.Printf вместо Println:
fmt.Printf("Device: %+v", nodes.Nodes[i].devices)
Или вы можете сделать что-то вроде этого:
for _, node := range nodes.Nodes {
for _, device := range node.devices {
fmt.Println("Device : " + device)
}
}
Выход :
Device : Android
Device : iOS