如果一个函数参数过多,可以重构为一个复合结构类型,如下
package main import ( "fmt" "log" "time" ) /* 如果一个函数参数过多,可以重构为一个复合结构类型,如下*/ type serverOptino struct { address string port int path string timeout time.Duration log *log.Logger } func newOption() *serverOption { return &serverOption{ //默认参数 address: "0.0.0.0", port: 8080, path: "/var/test", timeout: time.Second * 5, log: nil, } } func server(option *serverOption) {} func main() { opt := newOption() opt.port = 8085 //命名参数设置 server(opt) }
摘抄自《Go言语学习笔记》