我试图通过研究各种公共代码来理解各种编码架构。其中之一是mime/multipartGo 团队的实施。下面的片段是我所看到的。https://cs.opensource.google/go/go/+/refs/tags/go1.19.3:src/mime/multipart/formdata.go;l=156func (r *Reader) ReadForm(maxMemory int64) (*Form, error) { return r.readForm(maxMemory)}func (r *Reader) readForm(maxMemory int64) (_ *Form, err error) { form := &Form{make(map[string][]string), make(map[string][]*FileHeader)} defer func() { if err != nil { form.RemoveAll() } }() // Reserve an additional 10 MB for non-file parts. maxValueBy...more code here我已经通读了一些关于 SOLID、DRY、公共/私人关系的内容,所以我不能说我知道很多最佳实践/常见策略。看看上面的内容,在我看来它是一个将私有函数公开的函数。我唯一想到的是它纯粹是为了文档?但在我的脑海里没有什么具体的。所以我在这里很难理解的是这样做的好处是什么?感谢大家花时间阅读本文。非常感谢任何评论/阅读建议。
1 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
这是为了文档。公关评论解释说:
命名的返回值只应在对文档有贡献时用于公共函数和方法。
如果命名返回值只是在函数体内为程序员节省几行代码,则不应使用命名返回值,特别是如果这意味着文档中存在断断续续的情况,或者它只是为了让程序员可以使用裸返回语句. (除非在非常小的函数中,否则不应使用裸返回)
此更改是对公共函数签名的手动审核和清理。
要隐藏返回值名称,原始函数
func (r *Reader) ReadForm(maxMemory int64) (f *Form, err error) {
⋮
}
改为
func (r *Reader) ReadForm(maxMemory int64) (*Form, error) {
return r.readForm(maxMemory)
}
func (r *Reader) readForm(maxMemory int64) (_ *Form, err error) {
⋮
}
错误返回值名称无法消除,因为 延迟函数访问错误返回值。
- 1 回答
- 0 关注
- 111 浏览
添加回答
举报
0/150
提交
取消