共 5 篇文章 |
|
rotatelogs "github.com/lestrrat-go/file-rotatelogs" "go.uber.org/zap" "go.uber.org/zap/zapcore")//两个interface,判断日志等级 //warnlevel以下归到info日志 infoLevel := zap.LevelEnablerFunc(func(lvl zapcore.Level) bool { return lvl < zapcore.WarnLevel }) //warnlevel及以上归到warn日志 war... 阅94 转0 评0 公众公开 23-08-16 08:47 |
func main() { ctx, cancelFunc := context.WithCancel(context.func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { if parent == nil { panic("cannot create context from nil parent") }/*** 1、cancel(...)当前Ctx的子节点* 2、从父节点中移除该Ctx**/func (c *cancelCtx) cancel(removeFromParent bool, err... 阅15 转0 评0 公众公开 23-08-16 08:47 |
在(普通)函数里面定义一个内部函数(匿名函数),并且这个内部函数(匿名函数)用到了外面(普通)函数的变量,那么将这个内部函数和用到的一些变量统称为闭包。可以让该函数执行多种不同逻辑)]( "回调函数:闭包可以用作回调函数(例如在异步编程中,可以捕获外部函数的上下文) &&高阶函数:闭包可以用作高阶函数的参数,并在调用时返... 阅1 转0 评0 公众公开 23-08-16 08:47 |
Println(msg1, msg2)}i++ { //准备要发送的字符串 msg := fmt.Sprintf("Hello World, %03d", i) n, err := conn.Write([]byte(msg)) if err != nil { println("Write Buffer Error:", err.Error()) break } fmt.Println(msg) //从服务器端收字符串 n, err = conn.Read(buf) if err !=nil { println("Read Buffer Erro... 阅5 转0 评0 公众公开 23-05-15 18:22 |
a := [5]int{1, 2, 3, 4, 5}b := a[2:4] // a[2] 和 a[3],但不包括a[4]fmt.Println(b)b = a[:4] // 从 a[0]到a[4],但不包括a[4]fmt.Println(b)b = a[2:] // 从 a[2]到a[4],且包括a[2]fmt.Println(b)a := [5]int{1, 2, 3, 4, 5}b := a[2:4] // a[2] 和 a[3],但不包括a[4]fmt.Println(b)b = a[:4] // 从 a[0]到a[4],但不包括a[4]fmt.Println... 阅2 转0 评0 公众公开 23-05-15 18:21 |