【发布时间】:2018-11-16 17:24:56
【问题描述】:
定义map[type]interface{} 之类的惯用方式是什么?
据我所知,type(作为关键字)不是可比的,因此不能用作地图中的键。也许我走错路了,所以我会接受任何建议。
TL;DR;
示例动机
假设在应用模型中,我有一个名为 Person 的 type,存储在一个名为 "person" 的 table 中 rdbms 的强>。
如果我想将实体对象 Person 链接到 表名。根据定义,事情不会在一起,所以避免用“非自然相关”污染 Person 结构是明智的(这是我基于 java-OO 的思想出现的地方)[pointer|value]-recieve 方法,所以地图可以在这里派上用场,对吧? (地图非常适合将来自不同世界或场景的事物关联起来,对吧?)
var tableNameByType map[type]string = map[type]string{
Person: "person",
}
这个语句导致编译器对我大喊大叫,抱怨expected type, found 'type'。我试过用 used 代替 type、interface{} 和 struct,没有更好的结果。
提前感谢您花时间阅读我。
【问题讨论】: