在Go中打印数组值

时间:2018-12-15 11:07:56

标签: arrays go

我正在尝试在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)

2 个答案:

答案 0 :(得分:2)

您的错误是因为您试图将npm install electron --save-devstring连接起来:

[2]string

具体来说,"Device: %+v" + nodes.Nodes[i].devices 是字符串,而"Device: %+v"nodes.Nodes[i].devices

但在更高级别上,这是由于使用了格式动词[2]string导致的fmt.Println使用不正确的结果,%+vPrintln的上下文中毫无意义。您可能想要的是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