你一定遇到过这种场景:一个结构体有十几个字段,大部分是可选的。构造函数参数越写越长,调用时根本分不清第几个参数是什么意思,还要传一堆零值占位。

函数选项模式(Functional Options)就是来解决这个问题的。它用高阶函数替代冗长的参数列表,让代码既灵活又可读。

假设我们要创建一个 HTTP 服务器,有很多可配置项: