【发布时间】:2017-07-04 06:51:35
【问题描述】:
我看到以下代码(我简化了一点)。
func getEndpoints(db *sqlx.DB) s.Endpoints {
var endpoints s.Endpoints
{
repository := acl.NewRepository(db)
service := stat.NewService(repository)
endpoints = s.Endpoints{
GetEndpoint: s.MakeEndpoint(service),
}
}
return endpoints
}
如果我正确理解这段代码,var endpoints s.Endpoints{...} 内的代码将逐行执行,endpoints = s.Endpoints ... 行初始化上面声明的 var endpoints 变量。
我想这样重写是正确的(如果我错了请纠正我):
func getEndpoints(db *sqlx.DB) s.Endpoints {
repository := acl.NewRepository(db)
service := stat.NewService(repository)
endpoints := s.Endpoints{
GetEndpoint: s.MakeEndpoint(service),
}
return endpoints
}
那么有人可以解释一下为什么初始化写在var endpoints s.Endpoints{...} 中。有什么想法可以这样做吗?我错过了什么吗?
【问题讨论】:
标签: variables go scope initialization