Go语言常见错误 | 不使用function option模式

在使用Golang进行复杂的开发任务时,处理一个结构体有许多可选的配置项是常有的事。这也是在许多函数设计中共有的特征,因为这使得函数更容易使用,灵活性更强。然而,有时我们可能会看到错误的实践,那就是“遗漏使用 Function Option 模式”。在这篇文章中,我将详细解释Function Option的概念,并指出为什么我们应该使用它。我还将给出实例来展示如果忽略了Function Option,可能会出现哪些问题。

Function Option 的基本概念

在 Go 语言中,Function Option是一种用于设计准备接受许多设置项的结构体的技术。在没有 Function Option 的情况下,我们通常返回结构体的指针,并通过函数设置可选项。下面是一个无Function Option的示例:

type Config struct {
    A string
    B int
}

func NewConfig() *Config {
    return &Config {
        A: "default A",
        B: 0,
    }
}

func main() {
    cfg := NewConfig()
    cfg.A = "non-default A"
    cfg.B = 1
}

遗漏使用 Function Option 的问题

上述代码的问题在于,如果 Config 结构体有许多设置项,我们就必须设置每一项,即使我们只关心某几项。此外,散乱的设置代码可能混入我们的业务代码中,导致代码变得难以阅读和维护。

对于

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值