我有一个名为game的结构类型,如下所示:
type game struct {
commands map[string]*command
// ...
}
我想在init函数中的这种类型的结构中初始化 map 。我这样做
func (game *game) init() {
game.commands = make(map[string]*command)
// ...
}
我认为,有一些代码重复。如果我只能声明一次
(map[string]*command)
类型,那就太好了。有没有办法做到这一点?我尝试使用反射,但是它似乎不起作用,因为make buildin接受类型而不是值。
最佳答案
如果您担心重复map[string]*command
两次是重复的,则可以从中定义一个新类型。
type commandsMap map[string]*command
type game struct {
commands commandsMap
// ...
}
func (game *game) init() {
game.commands = make(commandsMap)
// ...
}
关于go - 如何在没有代码重复的情况下初始化映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60074719/