Skip to content

写法笔记

=> 限制入参个数

func A(addr ...string) {
 // 通过 len(string) 来判断 
}

// 调用:A('a', 'b', 'c')

=> 同样 values... 可以把数组换成单独入参

// => 常用传参模式:传递时用单独入参,消费时合成数组

func A(arr ...sth) {
 B(arr...)
} 

=> 给函数传配置对象,而不是很多入参

func LoggerWithConfig(conf LoggerConfig) {
 formatter := conf.Formatter
 if formatter == nil {
  formatter = defaultLogFormatter
 }
}

=> 函数也可以设置 type:

type LogFormatter func(params LogFormatterParams) string

=> 通过 v.(string) 可以将 interface 换成 string 返回

=> .next() 就是如此简单!

func (c *Context) Next() {
  c.index++
 for c.index < int8(len(c.handlers)) {
  c.handlers[c.index](c)
  c.index++
 }
}