前言
今天在看源碼的時候,發現一個東西,“空間”和“時間”一直是對立的,那麼在“空間換時間”的時候,通常使用的是map中的key來快速判斷,很多時候其value是用不到的。
那麼問題來了,既然很多時候value用不到,那麼怎麼寫纔是最節省空間的?
正文
說實話,我沒有直接想到這個問題的答案。
不過我查到了。
struct{} 的巧妙使用
當聲明爲map[int]struct{},由於struct{}是空,不關心內容,此時map的效果等同於set了。
通過_, ok := map[“key”],的方式判斷key存不存在,而值不佔內存。
(本來想證明一下以上結論是ok的,但是發現篇幅略長,後續找時間發一下:《一看就懂系列之Golang的pprof》)