我查看了Golang文檔,並沒有看到如何實現我期望做的示例。具體來說,我想寫從索引節點地圖,通過syscall.Stat_t.Ino
代表,其中有我的機器上輸入uint64
,以ino_entry,定義爲獲取靜態類型的struct元素
type ino_entry struct {
st *syscall.Stat_t
nodes []string
}
其中節點代表硬鏈接的所有文件的名稱i節點。但是,如果可以的話,我想避免將字面類型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)
,然後使用類型斷言訪問元素(但我不知道這個正確的語法)。
有沒有辦法根據另一個變量或結構或接口成員的靜態類型聲明變量的類型,而無需明確硬編碼該類型?
它看起來並不像我所要求的是可能的,所以我提出了一個[問題](http://code.google.com/p/go/issues/detail?id = 4626)去。 – telotortium