原文:7 Code Patterns in Go I Can’t Live Without
代码模式使你的程序更可靠、更高效,并使你的工作和生活更轻松
我已经为开发EDR解决方案工作了7年。这意味着我必须编写具有弹性和高效性的长时间运行的系统软件。我在这项工作中大量使用 Go,我想分享一些最重要的代码模式,你可以依靠这些模式你的程序更加可靠(reliable)和高效(efficient)。
使用Map实现Set
我们经常需要检查某些对象是否存在。例如,我们可能想检查之前是否访问过某个文件或者URL。在这些情况下,我们可以使用map[string]struct{}
。如下所示:
使用空结构 struct{}
意味着我们不希望Map的值占用任何空间。有些人会使用 map[string]bool
,但基准测试表明 map[string]struct{}
在内存和时间上都表现得更好。相关基准测试可以查看这里。