我看过Golang文档,还没有看到如何实现我想要做的事的示例。具体来说,我正在尝试将inode映射为ino_entry,该映射由在我的计算机上syscall.Stat_t.Ino具有类型的inode表示,该inode由uint64我的机器上的类型表示
type ino_entry struct {
st *syscall.Stat_t
nodes []string
}
其中节点代表硬链接到索引节点的所有文件的名称。
但是,uint64如果可以的话,我想避免将文字类型放入地图的规范中。也就是说map [uint64] ino_entry,我宁愿编写而不是编写map [typeof(syscall.Stat_t.Ino)] ino_entry,在其中typeof(x)返回的静态(即,编译时)类型x。我已经尝试过,map [syscall.Stat_t.Ino] ino_entry并且类似于类开关map [syscall.Stat_t.Ino.(type)] ino_entry,但是这两个都是语法错误。不用说,这map [reflect.Typeof(syscall.Stat_t.Ino)] ino_entry是行不通的。据我所知,在不对结构元素的类型进行硬编码的情况下,实现此功能的唯一方法是使用inomap := make(map [interface{}] ino_entry)然后使用类型声明来访问元素(尽管我不知道正确的语法)。
有没有一种方法可以基于另一个变量,结构或接口成员的静态类型来声明变量的类型,而无需明确地对该类型进行硬编码?
MM们
至尊宝的传说
相关分类