Golang结构建构的一般性

Golang结构建构的一般性,第1张

概述我有一个其他两个对象实现的结构.在这种情况下,键入A和B repo.有一些初始化代码,在这里表示为省略号.初始化代码在两个构造函数之间完全重复,并且不是什么大问题,而我只有两个dbRepo,但是当我创建更多时,我会更担心不好的做法.有没有办法用界面来概括这个? type dbRepo struct { foo string bar string}type typeARepo 我有一个其他两个对象实现的结构.在这种情况下,键入A和B repo.有一些初始化代码,在这里表示为省略号.初始化代码在两个构造函数之间完全重复,并且不是什么大问题,而我只有两个dbRepo,但是当我创建更多时,我会更担心不好的做法.有没有办法用界面来概括这个?

type dbRepo struct {    foo string    bar string}type typeARepo dbRepotype typeBRepo dbRepofunc newTypeARepo(foo,bar string) {    ...}func newTypeBRepo(foo,bar string) {    ...}
解决方法 我个人在Go中观察到的这种做法(也是有效的Go或者Go教程入门中推荐的那种做法)就是定义一个NewdbRepo函数并将其用于所有瞬时.它的实现看起来像;

func NewdbRepo(f,b string) *dbRepo {    return &dbRepo{ foo:f,bar:b}}

您无法像在大多数C语言中那样实际定义构造函数,因此您只需提供一个包作用域的方法来为您构建.此外,如果您没有使用复合文字(我在NewdbRepo实现中使用的启动样式),那么您可能会发现它足够简洁以满足您的需求.

总结

以上是内存溢出为你收集整理的Golang结构建构的一般性全部内容,希望文章能够帮你解决Golang结构建构的一般性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存