在Golang中,声明空切片有如下几种方法:
slice := make([]int, 0)
slice := []int{}
var slice []int
如果是在Golang程序中使用,并感觉不到太大的差别,都可以直接使用append追加值.但是如果要转成JSON ,就需要注意了.上面三种方法转成的json分别为:[]
[]
null
.如果前端期待一个列表,而接口返回的是null
,就会出现问题.
如果此切片最终是要通过JSON返给前端用的,比较好的做法就是不使用var来声明空切片,这样就可以避免上面的问题.
但是在goland中,如果我们用[]int{}
声明空切片的话,goland会提示一个警告(如下图所示),虽然可以忽略,但是对于强迫症患者来说真是不能忍.
我们可以通过设置来取消此提示,设置->编辑器->检查->Go->声明冗余->使用文字声明的空切片->取消勾选->应用.
关于声明空切片的相关说明可以看这个wiki:https://github.com/golang/go/wiki/CodeReviewComments#declaring-empty-slices
大意是说,几种声明方式并没有太大区别,除非要转成JSON,否则优先选var的声明方式.