全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页

GO标准库专题测试

20 题 45 分钟 难度:

考察知识点

1. net/http包(HTTP客户端与服务端)

  • HTTP客户端:
    • http.Get/Post:简单HTTP请求
    • http.Client:自定义客户端、超时设置
    • http.NewRequest:创建自定义请求
    • Context超时:context.WithTimeout控制请求超时
  • HTTP服务端:
    • http.ListenAndServe:启动HTTP服务器
    • http.HandleFunc:注册路由处理函数
    • http.Handler接口:自定义处理器
  • 超时设置:
    • Client.Timeout:整体超时设置
    • Transport分阶段超时:连接/握手/响应头超时
    • Context超时:灵活控制每个请求超时
  • 响应体关闭:resp.Body.Close()必须调用、防止资源泄漏

2. io包(输入输出操作)

  • io.Reader接口:Read方法读取数据
  • io.Writer接口:Write方法写入数据
  • io.Copy:数据拷贝、从Reader拷贝到Writer
  • io.ReadAll:读取全部数据、返回[]byte
  • io.LimitReader:限制读取字节数
  • io.Pipe:管道、同步读写
  • io.MultiReader/MultiWriter:组合多个Reader/Writer

3. bufio包(缓冲IO)

  • bufio.Reader:缓冲读取、提高读取效率
  • bufio.Writer:缓冲写入、提高写入效率
  • bufio.Scanner:逐行扫描、读取行数据
  • bufio.ReadWriter:组合Reader和Writer
  • 缓冲区大小:默认4096字节、可自定义

4. strings包(字符串处理)

  • 字符串判断:
    • Contains:判断是否包含子串
    • HasPrefix/HasSuffix:前缀后缀判断
  • 字符串操作:
    • Split:分割字符串
    • Join:拼接字符串数组
    • Replace/ReplaceAll:替换字符串
    • Trim/TrimSpace:去除空白/字符
  • 字符串转换:
    • ToUpper/ToLower:大小写转换
    • Title:标题格式化
  • 字符串查找:
    • Index/IndexAny:查找位置
    • Count:统计出现次数

5. strconv包(字符串转换)

  • 数值转字符串:
    • Itoa:int转string
    • FormatFloat/FormatInt:格式化数值
  • 字符串转数值:
    • Atoi:string转int
    • ParseFloat/ParseInt:解析数值
  • 布尔转换:
    • ParseBool:字符串转bool
    • FormatBool:bool转字符串
  • Quote/Unquote:字符串引号处理

6. os包(文件与系统操作)

  • 文件操作:
    • os.Open:只读打开文件
    • os.Create:创建或截断文件
    • os.OpenFile:灵活控制打开模式
    • os.Remove:删除文件
  • 文件信息:
    • os.Stat:获取文件信息
    • os.IsExist/IsNotExist:判断文件存在
  • 目录操作:
    • os.Mkdir/MkdirAll:创建目录
    • os.ReadDir:读取目录内容
  • 系统操作:
    • os.Getenv/LookupEnv:读取环境变量
    • os.Exit:退出程序
    • os.Args:命令行参数

7. net包(网络编程)

  • 建立连接:
    • net.Dial:主动建立连接
    • net.DialTimeout:带超时连接
  • 创建监听:
    • net.Listen:创建监听器
    • listener.Accept:接受连接
  • 地址解析:
    • net.ResolveIPAddr:解析IP地址
    • net.ResolveTCPAddr:解析TCP地址
    • net.ResolveUDPAddr:解析UDP地址
  • DNS查询:
    • net.LookupHost:查询主机IP
    • net.LookupCNAME:查询CNAME
    • net.LookupAddr:反向查询
    • net.LookupMX/NS/SRV:查询特殊记录

8. flag包(命令行参数解析)

  • 参数定义:
    • flag.Int/String/Bool/Float64:定义参数
    • flag.IntVar/StringVar:绑定到变量
  • 参数解析:
    • flag.Parse:解析命令行参数
    • flag.Args:获取非flag参数
  • 参数访问:
    • flag.Lookup:查找参数定义
    • flag.Visit:访问已设置的参数
  • 帮助信息:-h/--help显示帮助

9. encoding/json包(JSON编解码)

  • JSON编码:
    • json.Marshal:Go值转JSON字节
    • json.MarshalIndent:格式化输出
  • JSON解码:
    • json.Unmarshal:JSON字节转Go值
    • json.Decoder:流式解码
  • JSON流式处理:
    • json.Encoder:流式编码
    • json.Decoder:从Reader解码
  • 字段标签:struct tag控制JSON字段名和选项

10. encoding/xml包(XML编解码)

  • XML编码:xml.Marshal编码Go值
  • XML解码:xml.Unmarshal解码XML
  • XML流式处理:xml.Encoder/Decoder
  • XML标签:struct tag控制XML元素和属性

11. time包(时间处理)

  • 当前时间:time.Now获取当前时间
  • 时间格式化:Format方法格式化时间
  • 时间解析:Parse方法解析时间字符串
  • 时间计算:Add/Sub/AddDate计算时间
  • 时间戳:Unix/UnixNano获取时间戳
  • 定时器:Timer/Ticker定时和周期触发
  • Sleep:time.Sleep暂停执行

12. math包(数学计算)

  • 常数:math.Pi/E等数学常数
  • 基本运算:Abs/Min/Max/Pow
  • 三角函数:Sin/Cos/Tan
  • 取整函数:Floor/Ceil/Round
  • 随机数:math/rand包伪随机数生成
  • 位运算:math/bits包位操作

13. log包(日志记录)

  • 基本日志:
    • log.Print/Printf/Println:普通日志
    • log.Fatal:记录日志并退出
    • log.Panic:记录日志并panic
  • 自定义Logger:
    • log.New:创建自定义Logger
    • log.SetFlags/SetPrefix:设置格式和前缀
  • 日志输出:可指定输出目标(文件、标准输出等)

14. sync包(同步原语)

  • Mutex:互斥锁、保护共享资源
  • RWMutex:读写锁、读写分离
  • WaitGroup:等待一组goroutine完成
  • Once:单次执行
  • Cond:条件变量
  • Pool:对象池

15. path/filepath包(路径处理)

  • 路径拼接:filepath.Join拼接路径
  • 路径分割:filepath.Split分割路径
  • 路径清理:filepath.Clean清理路径
  • 路径匹配:filepath.Match/Glob匹配路径
  • 文件遍历:filepath.Walk遍历目录树
  • 扩展名:filepath.Ext获取扩展名
1
单选题

使用http.Client发送请求时,如何设置请求超时时间以避免请求无限等待?

A

设置Client.Timeout字段

B

使用context.WithTimeout

C

在请求Header中设置Timeout

D

A和B都可以

2
单选题

在http服务端处理请求时,如何优雅地处理超时并中断请求处理?

A

使用ResponseWriter.Close()

B

使用context的超时机制

C

设置http.Server的Timeout字段

D

B和C结合使用

3
单选题

关于http.Transport的连接池和Keep-Alive机制,以下哪个说法正确?

A

默认启用Keep-Alive,连接池最大100个空闲连接

B

默认禁用Keep-Alive,需手动设置EnableKeepAlives

C

连接池大小不可调整

D

Keep-Alive只影响服务端

4
多选题

http.Client的结构体可以配置以下哪些字段?

A

Transport(传输层配置)

B

Timeout(超时时间)

C

CheckRedirect(重定向处理)

D

CookieJar(Cookie存储)

5
多选题

http.Server结构体可以配置以下哪些超时相关字段?

A

ReadTimeout(读取超时)

B

WriteTimeout(写入超时)

C

IdleTimeout(空闲超时)

D

ReadHeaderTimeout(读取Header超时)

6
填空题

Go发送HTTP请求的基本流程:使用 _______________ 创建 ________ ;使用 ______________ 发送 ______ ;使用 _______________ 关闭 ______ ;使用 __________ 读取 ________

7
判断题

使用http.Client发送请求后,必须调用resp.Body.Close()关闭响应体,否则会导致连接无法复用,资源泄漏。

A

B

8
判断题

http.Get()和http.Post()使用DefaultClient,没有设置超时时间,生产环境应避免使用这些便捷函数。

A

B

9
判断题

json.Unmarshal()函数必须传入指针作为目标对象,否则无法修改目标对象的值。

A

B

10
单选题

Go的flag包用于解析命令行参数,以下哪个是正确的整数参数定义方式?

A

flag.Int("port", 8080, "服务端口")

B

flag.Integer("port", 8080, "服务端口")

C

flag.Number("port", 8080, "服务端口")

D

flag.Arg("port", 8080, "服务端口")

11
单选题

flag包支持自定义参数类型,需要实现哪个接口?

A

flag.Value接口

B

flag.Custom接口

C

flag.Parser接口

D

flag.Handler接口

12
单选题

fmt.Printf中用于格式化整数的动词是?

A

%d

B

%i

C

%n

D

%int

13
填空题

strings包核心函数: ________________ 判断 _____________________ ______________________ _________________________ __________

14
单选题

io.Reader接口的核心方法是?

A

Read(p []byte) (n int, err error)

B

Write(p []byte) (n int, error)

C

ReadAll() ([]byte, error)

D

Get() ([]byte, error)

15
填空题

io包实用函数: _______ ________ 到Writer; __________ ________ 数据; ______ 表示 _______________ 创建 ________

16
单选题

os.Create函数的行为是什么?

A

仅创建新文件

B

创建或截断文件为空

C

仅打开已存在文件

D

追加模式打开

17
判断题

log.Fatal()函数打印日志后会调用os.Exit(1)退出程序,之后的代码不会执行。

A

B

18
多选题

net包提供以下哪些核心函数用于网络操作?

A

net.Dial(建立连接)

B

net.Listen(创建监听器)

C

net.ResolveIPAddr(解析IP地址)

D

net.LookupHost(DNS查询)

19
填空题

Go HTTP服务端基本结构: _______________ 注册 _______________________________ 启动 _________________________ 用于 ____________________ 包含 ________

20
填空题

net包TCP服务器: __________ 创建 _____________________ _________________ __________________ __________________ ________

← 上一个试卷 GO方法与接口专题测试
下一个试卷 → GO流程控制专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库