loops - 循环中的动态变量
问题描述
我试图弄清楚在循环切片时处理变量的最佳方法是什么。
我有以下代码:
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”)”,我需要什么类型的哈希表
解决方案
动态创建新变量几乎总是一个坏主意,即使在支持它的语言中也是如此。Go 不支持它,因为它是一种静态编译的语言。
你最好使用 type 的映射map[string]T
,T
作为返回的类型AddSubMenuItem
。
推荐阅读
- tensorflow2.0 - 在 tf.keras (TF2.0) 中使用定制训练进行正则化
- r - DiagrammeR - 箭头问题
- javascript - 我不断收到一条错误消息,提示“未捕获的 TypeError:无法读取未定义的属性‘点击’”有谁知道出了什么问题?
- java - 不能在 Java 中模拟最终类
- jenkins - Jenkins ClearCase UCM Plugin Failing While Rebasing
- powerbi - 当 PBI 数据集在 Power Automate 中完成刷新时如何发送通知?
- python - ImportError:没有名为 werkzeug.utils 的模块
- node.js - 卡在从 AWS S3 检索图像
- c++ - 如何理解“包含省略号的抽象声明符只能用于参数声明”
- json - 是否有用于过滤 json 数据的 JsonPatch 模拟?