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言语学习笔记》