我是新来的Go,也对新的概念reflection,但应该和可以的使用反映包避免Go?是否存在reflect不可避免的情况?
有没有理由我应该使用&StructName{}而不是Struct{}?我看到许多使用前一种语法的例子,即使在Effective Go页面中,但我真的不明白为什么.
附加说明:我不确定我是否用这两种方法很好地解释了我的问题,所以让我提炼我的问题.
我知道通过使用&我将收到指针而不是值,但我想知道为什么我会使用&StructName{}而不是StructName{}.例如,使用有什么好处:
func NewJob(command string, logger *log.Logger) *Job {
return &Job{command, logger}
}
Run Code Online (Sandbox Code Playgroud)
代替:
func NewJob(command string, logger *log.Logger) Job {
return Job{command, logger}
}
Run Code Online (Sandbox Code Playgroud) 有人可以向我解释JSON API规范中提到的以下三点的期望吗?
服务器必须使用标题Content-Type:application/vnd.api + json在响应文档中发送所有JSON API数据,而不使用任何媒体类型参数.
我已经理解了第一部分,它提到需求的响应有Content-Type标题设置application/vnd.api+json,但我无法理解without any media type parameters.部分.
如果请求指定带有任何媒体类型参数的标题Content-Type:application/vnd.api + json,则服务器必须使用415 Unsupported Media Type状态代码进行响应.
提到时又丢了media type parameters.
如果请求的Accept标头包含JSON API媒体类型,并且该媒体类型的所有实例都使用媒体类型参数进行修改,则服务器必须使用406 Not Acceptable状态代码进行响应.
go ×2
difference ×1
interface ×1
json ×1
media ×1
parameters ×1
pointers ×1
reflection ×1
struct ×1
types ×1