我正在尝试在Go中的struct中定义一个数组,devices数组应该具有3种类型的字符串,但是我不知道如何打印devices数组的值
以下输出“字符串和[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)
答案 0 :(得分:2)
您的错误是因为您试图将npm install electron --save-dev
和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)
答案 1 :(得分:1)
您必须使用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