vscode 里 gopls 的小性子

在学习 go 的道路上,月拱一卒。今天把元旦前搁置的一个工程打开来,继续学习用 go 语言与数据库进行交互,使用了 github.com/xiuno/dbx 这个库。

把例子程序保存为 main.go 后创建了个工程,可是一编译就会报一个错“Error loading workspace: gopls requires a module at the root of your workspace.”。看了别人的踩坑记录才搞清楚,原来是 gopls 的锅,需要在 settings.json 里加上 "gopls": { "experimentalWorkspaceModule": true } 这个配置(加上以后要重启一下 vscode)。

接着又报几处 composite literal uses unkeyed fields 这样的警告。仍然是看他人的踏坑记录,是定义结构对象时初始化成员处没有写成员名导致的,写成 key: value 样式即可。

编译后执行,数据库在创建数据表的时候返回错误“Error 1101: BLOB, TEXT, GEOMETRY or JSON column ‘xxx’ can’t have a default value”。他人的踏坑经验说,这是因为数据库的 sql_mode(可以执行 select @@sql_mode 语句查看)里有 STRICT_TRANS_TABLES,将其去掉重启一下数据库服务即可。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注