go - 标准库
标准库参考地址
bash
https://golang.google.cn/pkg/
标准库说明
数据处理
encoding/(例如:encoding/json、encoding/xml、encoding/base64)
hash/ (例如:hash/adler32、hash/crc32、hash/fnv)
bytes
strconv
文件操作
os
path/(例如:path/filepath)
bufio
compress/ (例如:compress/gzip、compress/zlib)
网络通信
net
net/http
net/http/(例如:net/http/httputil、net/http/pprof)
net/url
net/rpc
net/smtp
加密和安全
crypto/ (例如:crypto/md5、crypto/aes、crypto/rsa)
crypto/rand
crypto/tls
crypto/x509
时间处理
time
容器和集合
container/(例如:container/heap、container/list)
sort
并发和同步
sync/ (例如:sync/atomic)
runtime
runtime/pprof
runtime/trace
测试和调试
testing
testing/(例如:testing/iotest、testing/quick)
文本处理
fmt
strings
unicode/ (例如:unicode/utf8、unicode/utf16)
text/(例如:text/template、text/scanner)
其他
errors
flag
log
math
math/ (例如:math/big、math/rand)
sync/atomic
unsafe
示例
文件操作示例(os、path/filepath、bufio)
go
package main
import (
"os"
"path/filepath"
"bufio"
)
func main() {
// 创建文件
file, err := os.Create("example.txt")
if err != nil {
panic(err)
}
defer file.Close()
// 写入文件
writer := bufio.NewWriter(file)
_, err = writer.WriteString("Hello, World!\n")
if err != nil {
panic(err)
}
writer.Flush()
// 读取目录
files, err := filepath.Glob("*.txt")
if err != nil {
panic(err)
}
for _, f := range files {
println(f)
}
}
网络通信示例(net/http、net/url)
go
package main
import (
"net/http"
"net/url"
)
func main() {
// 发送 HTTP 请求
resp, err := http.Get("https://www.example.com")
if err != nil {
panic(err)
}
defer resp.Body.Close()
// 解析 URL
u, err := url.Parse("https://www.example.com/path?query=value")
if err != nil {
panic(err)
}
println("Host:", u.Host)
println("Path:", u.Path)
println("Query:", u.Query().Get("query"))
}
并发和同步示例(sync)
go
package main
import (
"sync"
"time"
)
func main() {
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
time.Sleep(time.Second)
println("Goroutine 1 completed")
}()
go func() {
defer wg.Done()
time.Sleep(2 * time.Second)
println("Goroutine 2 completed")
}()
wg.Wait()
println("All goroutines completed")
}