Go vet composite literal uses unkeyed fields

在使用go vet进行语法检查时, 报了这么个错composite literal uses unkeyed fields

对于刚开始看Golang的我一脸懵逼, 明明是可以编译通过且跑通的…

struct 是这样定义的

type CallRequest struct {
	AccessToken string
	APIName     string
	APIVersion  string
	APIParams   map[string]string
}

代码里是这样用的

// ... 省略 ... 
request := CallRequest{accessToken, apiName, apiVersion, params}

然后 go vet ./... 就报错了... composite literal uses unkeyed fields

看了些资料后知道了, 这样写更严谨一些:

request := CallRequest{AccessToken: accessToken, APIName: apiName, APIVersion: apiVersion, APIParams: params}

End…