time | | 用于操作时间函数 | | |
| Now | Now返回当前本地时间 | t:=time.Now() | |
| | 获取当天0点的时间戳 | time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location()).Unix() | |
strings | | 用于操作字符的简单函数 | | |
| Join | 将子串连接成一个单独的字符串,子串之间用标识符分隔(切片或数组转成字符串) | strings.Join([]string{"a", "b", "c"},,"|") | |
| Split | 将字符串中的每一个字符分割成一个单独的元素(字符串切割成切片) | strings.Split(s, ",") | |
| TrimSuffix | 移除后缀 | strings.TrimSuffix("101123297857.html", ".html") | |
| Count | 返回字符串s中有几个重复的sep子串。 | strings.Count(s, sep string) | |
| Index | 子串sep在字符串s中第一次出现的位置,不存在则返回-1。 | strings.Index(s, sep string) | |
| LastIndex | 子串sep在字符串s中最后一次出现的位置,不存在则返回-1。 | strings.LastIndex(s, sep string) | |
| Replace | 返回将s中前n个不重叠old子串都替换为new的新字符串,如果n<0会替换所有old子串。 | strings.Replace(s, old, new string, n int) string | |
| Trim | 去掉字符串中的某值 | strings.Trim("ti tle", " ") | |
| Contains | 判断字符串中是否包含某个子串。包含或者子串为空则返回true | strings.Contains("hello world hello world", "wo") | |
| EqualFold | 判断两个utf-8编码字符串(将unicode大写、小写、标题三种格式字符视为相同)是否相同。 | strings.EqualFold("Go", "go") | |
strconv | | 提供字符串与基本数据类型互转的能力。 | | |
| Atoi | string到int | int,err:=strconv.Atoi("string") | |
| ParseInt | string到int64 | int64,err:=strconv.ParseInt(string, 10, 64) | |
| Itoa | int到string | string:=strconv.Itoa(int) | |
| FormatInt | int64到string | string:=strconv.FormatInt(int64, 10) | |
| ParseFloat | string到float32(转成float64?) | float32, err := strconv.ParseFloat(string, 32) | |
| ParseFloat | string到float64 | float64, err := strconv.ParseFloat(string, 64) | |
| FormatFloat | float64 到 string(没有精度损失) | strconv.FormatFloat(value, 'G', -1, 64) | |
| - | int64到int | int:=int(int64) | |
| - | int到int64 | int64:=int64(int) | |
sync | | 它提供了基本的同步原语。在多个goroutine访问共享资源的时候,需要使用sync中提供的锁机制。 | | |
| WaitGroup | 协程等待 | Add(1) Done() Wait() | |
| Mutex | 互斥锁 | Lock() Unlock() | |
| RWMutex | 读写互斥锁 | Lock() UnLock() Rlock() Runlock() | |
sync/atomic | | atomic包提供了底层的原子级内存操作。解决了CPU多线程的并发问题。 | | |
fmt | | 实现格式化的输入输出操作,其中的fmt.Printf()和fmt.Println()是开发者使用最为频繁的函数。 | | |
log | | 实现了简单的日志服务 | | |
| Println | 格式化输出,有时间 | log.Println(“Hello”) | |
io | | 实现了一系列非平台相关的IO相关接口和实现,比如提供了对os中系统相关的IO功能的封装。我们在进行流式读写(比如读写文件)时,通常会用到该包。 | | |
bufio | | 它在io的基础上提供了缓存功能。在具备了缓存功能后, bufio可以比较方便地提供ReadLine之类的操作。 | | |
os | | 本包提供了对操作系统功能的非平台相关访问接口。接口为Unix风格。提供的功能包括文件操作、进程管理、信号和用户账号等。 | | |
| Remove | 删除文件 | os.Remove("删除图片的地址") | |
| MkdirAll | 创建多级目录 | os.MkdirAll(dir, 0666) 0666是文件的权限 | |
| Args | 保管命令行参数 | os.Args | |
os/exec | | 执行命令行命令 | | |
| exec.Command | 执行指定的程序 | exec.Command("notepad") cmd := exec.Command("taskkill", "/f", "/im", "notepad.exe") cmd.Run() | |
flag | | 它提供命令行参数的规则定义和传入参数解析的功能。绝大部分的命令行程序都需要用到这个包。 | | |
encoding/json | | JSON目前广泛用做网络程序中的通信格式。本包提供了对JSON的基本支持,比如从一个对象序列化为JSON字符串,或者从JSON字符串反序列化出一个具体的对象等。 | | |
http | | 通过http包,只需要数行代码,即可实现一个爬虫或者一个Web服务器,这在传统语言中是无法想象的。 | | |
net | | 网络I/O接口,包括TCP/IP、UDP、域名解析和Unix域socket | | |
| listen | 返回在一个本地网络地址laddr上监听的Listener(开启一个服务) | lis, err := net.Listen("tcp", 5501) | |
match | | 提供了常用的数学函数 | | |
| ceil | 向上取整 | math.Ceil(1.2) // 2 | |
| floor | 向下取整 | math.Floor(1.2) // 1 | |
| Max | 取最大值 | math.Max(float64(a), float64(b)) | |
| Min | 取最小值 | math.Min(float64(a), float64(b)) | |
path | | 实现了对斜杠分隔的路径的实用操作函数 | | |
| Ext | Ext函数返回path文件扩展名 | path.Ext(链接地址) | |
encoding/json | | 实现了 Json 对象的编解码 | | |
| Marshal | Json 序列化 | json.Marshal(req) | |
| UnMarshal | Json 返序列化,解析x的值存入v | json.Unmarshal(x, &v) | |
| Marshal | 将数据编码成 Json 字符串 | cont, err := json.Marshal(group) | |
regexp | | 正则表达式 | | |
| MustCompile | 全局正则表达式变量的安全初始化 | re := regexp.MustCompile(反引号<td class="zblist_xm"><a href="([^"]+)" target="_blank">(.*)</a></td>反引号) | |
Json | | Json处理 | | |
| Unmarshal | 解析Json数据 | json.Unmarshal([]byte(Json字符串), &映射结构) | 由于json.UnMarshal()方法接收的是字节切片,所以首先需要把JSON字符串转换成字节切片c := []byte(s) |
Sort | | sort包提供了排序切片和用户自定义数据集的函数 | | |
| Slice | 对(一维或多维)切片进行排序 | 使用方法见下方示例 | |
html | | 供了用于转义和解转义HTML文本的函数 | | |
| EscapeString | 转义 | | |
| UnescapeString | 解转义 | | |