Go语言中的常见陷阱是什么



我打算在Golang上进行一些程序分析,就像Pylint一样,试图从源代码中找到问题。所以我需要问的第一个问题是:

GO语言专业的常见陷阱是什么?

我知道Python中有一些,例如数组变量" []为参数,而可变的对象与不变的对象。(请参阅此处和那里的更多)。

示例1:

>>> def spam(eggs=[]):
...     eggs.append("spam")
...     return eggs
...
>>> spam()
['spam']
>>> spam()
['spam', 'spam']
>>> spam()
['spam', 'spam', 'spam']
>>> spam()
['spam', 'spam', 'spam', 'spam']

示例2:

Map<Person, String> map = ...
Person p = new Person();
map.put(p, "Hey, there!");
p.setName("Daniel");
map.get(p);       // => null

所以我真正想知道的是Golang的类似人。我已经搜索了网络,但找不到它。我还回顾了一些GIT存储库历史记录(例如Docker.io),但无法获得典型的历史记录。您能为我提供一些示例,例如记忆泄漏,并发,意外结果和误解。

golint是GO源代码的衬里。

最新更新