gpt4 book ai didi

arrays - 如何将 [ ][2]string 转换为 map[string] 中的字符串?

转载 作者:IT王子 更新时间:2023-10-29 01:47:49 27 4
gpt4 key购买 nike

我正在检索一个名为 DockerInfo 的对象其中有一个名为 SystemStatus 的字段,它是 [][2]string,然后为了访问 SystemStatus 中的元素,我正在做例如,如果 SystemStatus 中的第 4 个元素是 ["Nodes","6"] 然后访问数字 6

dockerinfo.SystemStatus[3][1]

但是 Nodes 元素并不总是固定在第 4 个位置,所以我不能使用索引,而是想通过例如编写

来查找节点数
dockerinfo.SystemStatus["Nodes"] 

我该怎么做?或者如何将SystemStatus转换为map[string]string格式?

最佳答案

使用简单的 for 循环遍历 dockerinfo.SystemStatus slice 的值,并将第一个值与 "Nodes" 进行比较:

for _, v := range dockerinfo.SystemStatus {
if v[0] == "Nodes" {
// Got it!
value := v[1] // This will be "6" in your example
fmt.Println("Nodes value:", value)
break
}
}

将是string 类型,但它看起来包含数字数据。例如,如果你想要它作为 int,你可以使用 strconv.Atoi()解析数字:

value := v[1]
if n, err := strconv.Atoi(value); err == nil {
// n is of type int, use it like so
} else {
// Not a number!
}

如果您必须多次查找值,从中构建 map 可能会有利可图。你可以这样做:

ssmap := map[string]string{}
for _, v := range dockerinfo.SystemStatus {
ssmap[v[0]] = v[1]
}

// And then you can do simple lookup:
if nodes, ok := ssmap["Nodes"]; ok {
fmt.Println("Nodes value:", nodes)
} else {
// Nodes not found!
}

关于arrays - 如何将 [ ][2]string 转换为 map[string] 中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38350108/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com