我是 Go 的新手,我正在尝试用这个一般方面构建一个函数:mapOfResults = ThingDoer([ ["One", int, -1, true], ["Flying", string, "", true], ["Banana", bool, false, true]])但我什至无法弄清楚它的签名(签名甚至是 Go 中它的专有名词吗?它所有参数的定义等)。我说的是这个结构:func ThingDoer(config ThisIsWhatICannotFigure) map[string]Results { // the body of my function}如何定义此类参数的类型?
1 回答
弑天下
TA贡献1818条经验 获得超8个赞
试试这个:
type ConfigItem struct {
Name string
Value interface{}
SomethingElse bool
}
mapOfResults = ThingDoer([]ConfigItem{
{"One", -1, true},
{"Flying", "", true},
{"Banana", false, true},
})
ThingDoer 可以使用类型开关来确定值类型:
func ThingDoer(config []ConfigItem) map[foo]bar {
for _, item := range config {
switch v := item.Value.(type) {
case int:
// v is int
case bool:
// v is bool
case string:
// v is string
}
}
}
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报
0/150
提交
取消