golang fmt格式“占位符”

golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 # 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段名 Printf("%+v", people) {Name:zhangsan} ...阅读全文

阅读:174983 评论:15

golang zap 日志库使用(含文件切割、分级别存储和全局使用等)

日志处理经常有以下几个需求: 1、不同级别的日志输出到不同的日志文件中。 2、日志文件按照文件大小或日期进行切割存储,以避免单一日志文件过大。 3、日志使用简单方便,一次定义全局使用。 建议使用使用Uber-go的Zap Logger,大神李文周大博客已经说的非常明确了,请先参考李老师的博客: https://www.liwenzhou.com/posts/Go/zap/ 问题二和问题三需要补充描述: 一、日志按照级别分文件切割存储 1.1 首先实现两个判断日志等级的interface info...阅读全文

2020-02-18 11:32:48 卡戎li
阅读:7641 评论:0

在 Go 语言中,我为什么使用接口

强调一下是**我个人**的见解以及接口在 **Go 语言**中的意义。 如果您写代码已经有了一段时间,我可能不需要过多解释接口所带来的好处,但是在深入探讨 Go 语言中的接口前,我想花一两分钟先来简单介绍一下接口。 如果您对接口很熟悉,请先跳过下面这段。 ## 接口的简单介绍 在任一编程语言中,接口——方法或行为的集合,在功能和该功能的使用者之间构建了一层薄薄的抽象层。在使用接口时,并不需要了解底层函数是如何实现的,因为接口隔离了各个部分(划重点)。 跟不使用接口相比,...阅读全文

2020-03-12 22:25:39 polaris
阅读:3859 评论:0

[Go] 写一个守护协程的通用套路是什么?

背景 根据一个 Goroutine 是否直接依赖用户交互,我们可以将 Goroutine 分为两大类,一类是直接依赖用户交互的前台协程,比如 HTTP Server Handler等;另一类是不直接依赖用户交互的后台协程,比如 HTTP Server,定时任务协程等。前台协程随用户的交互开始执行,随交互结束而结束,比较容易设计。本文主要讨论后台协程设计的一些通用套路。 一个良好的后台协程需要至少满足以下两个诉求: 容易控制,尤其是启动、停止、重启等操作。 状态容易被观察,比如是否正在运行中。 针...阅读全文

2020-06-03 12:32:37 eddix
阅读:689 评论:0