包含标签 go 标准库 articles

Go语言标准库之context

为什么需要Context 基本示例 package main import ( "fmt" "sync" "time" ) var wg sync.WaitGroup // 初始的例子 func worker() { for { fmt.Println("worker") time.Sleep(time.Second) } // 如何接收外部命令实现退出 wg.Done() } func main() { wg.Add(1) go worker() // 如何优雅的实现结束子goroutine wg.Wait() fmt.Println("over") } 全局变量方式 package main import ( "fmt" "sync" "time" ) var wg sync.WaitGroup var exit bool // 全局变量方式存在的问题: // 1. 使用全局变量在跨包调用时不容易统一 // 2. 如……

Continue reading

Go语言标准库之flag

os.Args 如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。 package main import ( "fmt" "os" ) //os.Args demo func main() { //os.Args是一个[]string if len(os.Args) > 0 { for index, arg := range os.Args { fmt.Printf("args[%d]=%v\n", index, arg) } } } 将上面的代码执行go build -o "args_demo"编译之后,执行:……

Continue reading

Go语言标准库之fmt与格式化占位符

fmt fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。 向外输出 标准库fmt提供了以下几种输出相关函数。 Print Print系列函数会将内容输出到系统的标准输出,区别在于Print函数直接输出内容,Printf函数支持格式化输出字符串……

Continue reading

Go语言标准库之log

log Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列(Print|Printf|Println……

Continue reading

Go语言标准库之net&http

net/http介绍 Go语言内置的net/http包提供了HTTP客户端和服务端的实现。 HTTP协议 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发……

Continue reading

Go语言标准库之strconv

strconv包 strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数: Atoi()、Itoa()、parse系列、format系列、append系列。 更多函数请查看官方文档。 string与int类型转换 这一组函数是我们平时编程中用的最多的。 Atoi() Atoi()函数……

Continue reading

Go语言标准库之time

time包 时间和日期是我们编程中经常会用到的,本文主要介绍了 Go 语言内置的 time 包的基本用法。time 包提供了一些关于时间显示和测量用的函数。time 包中日历的计算采用的是公历,不考虑润秒。 时间类型 Go 语言中使用time.Time类型表示时间。我们可以通过time.Now函数获取当前的时……

Continue reading