Go 有方便的語法來定義數組查找表:var myTable = [...]string{ 'a': "aaaa", 'b': "bbbb", 'z': "zoro",}在某些情況下(鍵是已知的并且范圍不是太大),這是比地圖更有效的制作表格的方法。但是,很容易在 map 中進行查找并查找 key 是否不在其中。但是要在這個數組中按索引進行查找,我必須這樣做:if index < len(myTable) { if val := myTable[index]; val != "" { // here I know index exists in array and val is its value }}是否有更簡單/更常見的模式或庫函數來做到這一點?
2 回答

猛跑小豬
TA貢獻1858條經驗 獲得超8個贊
在某些情況下(鍵是已知的并且范圍不是太大)這是制作表格的更有效的方法,而不是映射
是的。您想將您的密鑰轉換為數組中的偏移量。然后您可以在恒定時間內進行查找。
假設您知道您的所有密鑰都在 set 中A-Z
。因此,您創建了一個包含 26 個條目的數組。當輸入鍵時,減去“A”的 ASCII 值以將索引放入表中。Boom,恒定時間查找,這將比地圖查找快得多。
請注意,您實際上并未將密鑰存儲在任何地方,它是隱式的。如果你想打印你的表格,你需要自己生成所有的鍵 ( A-Z
)。
- 2 回答
- 0 關注
- 294 瀏覽
添加回答
舉報
0/150
提交
取消