作者:看那个码农
公众号:看那个码农
上期内容介绍了Go语言学习之栈和堆|Go主题月
- Go语言的栈和堆
本篇内容将继续带领大家走进Go语言的世界。
1.本文简介
Go语言的常用包
本文对Go语言中的几个常用包进行了整理。
1.fmt
该包实现格式化的输入输出操作,
fmt.Printf()和fmt.Println()是开发者使用最为频繁的函数。
例如下面的案例:
package main
import "fmt"
func main() {
var a string
a = "Hello World"
fmt.Println(a)
fmt.Printf("%s",a)
}
输出为:
2.io
该包实现了一系列非平台相关的IO相关接口和实现,比如提供了对os中系统相关的IO功能的封装。我们在进行流式读写(比如读写文件)时,通常会用到该包。
3.bufio
该包在io的基础上提供了缓存功能。在具备了缓存功能后, bufio可以比较方便地提供ReadLine之类的操作。
4.strconv
该包实现对字符串和基本数据类型之间的转换。
基本数据类型包括:布尔、整型(包括有/无符号、二进制、八进制、十进制和十六进制)和浮点型等。
例如下面的案例:
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
i, err := strconv.Atoi("-42")
fmt.Println(reflect.TypeOf(i).String(), i, err)
s := strconv.Itoa(-42)
fmt.Println(reflect.TypeOf(s).String(), s)
}
输出为:
该案例是完成了数字转换。
- Atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数
- Itoa (表示 integer to ascii)函数把整数转换成字符串,并返回指向转换后的字符串的指针。
5.os
该包提供了对操作系统功能的非平台相关访问接口。接口为Unix风格。提供的功能包括文件操作、进程管理、信号和用户账号等。
6.sync
该包提供了基本的同步原语。在多个goroutine访问共享资源的时候,需要使用sync中提供的锁机制。
7.flag
该包提供命令行参数的规则定义和传入参数解析的功能。绝大部分的命令行程序都需要用到这个包。
例如下面的案例:
package main
import (
"flag"
"fmt"
)
//定义命令行参数
var mode = flag.String("mode","","process mode")
func main() {
//解析命令行参数
flag.Parse()
//输出命令行参数
fmt.Println(*mode)
}
上面这个案例是通过提前定义一些命令行指令和对应变量,在运行时输入对应参数的命令行参数后,经过flag包的解析后即可通过定义的变量获取命令行的数据。
8.encoding/json
JSON目前广泛用做网络程序中的通信格式。本包提供了对JSON的基本支持,比如从一个对象序列化为JSON字符串,或者从JSON字符串反序列化出一个具体的对象等。
9.net/http
通过该包,只需要数行代码,即可实现一个爬虫或者一个Web服务器。
该包中包含http客户端和服务端的实现,
利用Get,Head,Post,以及PostForm
可以实现HTTP或者HTTPS的请求。
例如下面案例所示:
package main
import (
"net/http"
)
func main() {
http.HandleFunc("/", helloworld)
http.ListenAndServe(":8080", nil)
}
func helloworld(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello World\n"))
}
在上述案例中,做了几个工作
- 导入net/http包
- 在main函数中,使用方法HandleFunc创建了路由/,这个方法接受一个一个模式和一个函数,前者描述了路径,后者指定如何对发送到该路径的请求做出响应。
- 函数helloworld接受一个http. ResponseWriter和一个指向请求的指针。这意味着在这个函数中,可查看或操作请求,再将响应返回给客户端。同时这里使用了方法Write来生成响应。这个方法生成的HTTP响应包含状态、报头和响应体。
- []byte声明一个字节切片并将字符串值转换为字节。
- 为响应客户端,使用方法ListenAndServe来启动一个服务器,这个服务器监听localhost和端口8000
如果你觉得这篇内容对你有帮助的话:
1、点赞支持下吧,让更多的人也能看到这篇内容
2、关注公众号:看那个码农,我们一起学习一起进步。
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情