2 回答
TA贡献1824条经验 获得超5个赞
如果您稍微重构代码并且不将user.Current()调用放在另一个块中(if在您的情况下),则可以使用:= Short 变量声明:
func getConfigFilepath(userSuppliedFilepath string) (filepath string, err error) {
if userSuppliedFilepath != "" {
return userSuppliedFilepath, nil
}
usr, err := user.Current()
filepath = path.Join(usr.HomeDir, ".myprogram.config.json")
return
}
编辑:
你可能会说这个代码比起原来的更长,但请注意,您原来的代码是没有有效的,也是不完整的,因为当它不处理的情况下userSuppliedFilepath提供。您应该将建议的代码与以下代码的完整有效版本进行比较:
func getConfigFilepath(userSuppliedFilepath string) (filepath string, err error) {
if userSuppliedFilepath == "" {
var usr *user.User
usr, err = user.Current()
filepath = path.Join(usr.HomeDir, ".myprogram.config.json")
} else {
filepath = userSuppliedFilepath
}
return
}
现在提议的代码不再长(相反,它更短了一点)。
- 2 回答
- 0 关注
- 192 浏览
添加回答
举报