首页 > 解决方案 > 循环中的动态变量

问题描述

我试图弄清楚在循环切片时处理变量的最佳方法是什么。

我有以下代码:

type Server struct {
    Name string
    Features []string
}


func main() {


    var server1 Server

    server1.Name = "server-abc-1"
    server1.Features = append(server1.Features, "feature1", "feature2", "feature3" )

    subMenuServer1 := systray.AddMenuItem(server1.Name, "Server Menu")

    //Manually adding a menu item
    subMenuFeatureItem1 := subMenuServer1.AddSubMenuItem("feature1", "feature1 description")

    //Creating menu items from looping through slice - Not working
    for i, s := range server1.Features {
        dynamicVariable := subMenuServer1.AddSubMenuItem(s, "test")

    }
}

我将如何遍历功能切片以动态创建菜单项?主要问题是我需要生成某种 Go 不支持的动态变量。有更好的为什么要做事情吗?

我发现有人提到使用哈希表而不是动态变量。如果是这样,如果值将是“subMenuServer1.AddSubMenuItem(s, “test”)”,我需要什么类型的哈希表

标签: loopsgovariables

解决方案


动态创建新变量几乎总是一个坏主意,即使在支持它的语言中也是如此。Go 不支持它,因为它是一种静态编译的语言。

你最好使用 type 的映射map[string]TT作为返回的类型AddSubMenuItem


推荐阅读