Go 练习
Go 的全部练习都来自可随时对照的主题。
106项练习 离线运行
go 测验 新题 哪组声明能让 Go 包直接执行? 测验 go 测验 新题 Go 如何让标识符可被其他包访问? 测验 go 填空 新题 补全针对指针类型的编译期接口断言:`var _ Notifier = ______` 填空 go 填空 新题 写出决定 `T` 或 `*T` 是否满足某个接口的集合名称 填空 go 填空 新题 写出模块根目录中声明模块路径和依赖要求的文件名 填空 go 测验 新题 一个包含切片字段的结构体被赋值给另一个变量。哪项陈述正确? 测验 go 测验 新题 把值为 nil 的 `*ParseError` 存入 `error` 类型变量后,哪项说法正确? 测验 go 填空 新题 写出变量声明时没有显式初始化器所获得的值的术语 填空 go 测验 新题 函数向切片追加元素时,哪条规则能保证无论是否分配新底层数组都得到正确结果? 测验 go 测验 新题 关于延迟调用,哪项陈述正确? 测验 go 测验 新题 一个哨兵错误经过两层包装后,哪种检查方式能保持调用方契约? 测验 go 测验 新题 map 可以合法保存零值。代码应如何区分键不存在与键存在但值为零? 测验 go 填空 新题 写出向 nil map 写入条目时产生的运行时失败信息 填空 go 填空 新题 写出内置函数名称:它在同一 goroutine 的延迟函数中被直接调用时,可以停止 panic 展开 填空 go 填空 新题 在约束项 `int` 前加哪个符号,可以同时接受底层类型为 `int` 的命名类型? 填空 go 填空 新题 `fmt.Errorf` 使用哪个格式化动词既能补充上下文,又能保留错误供后续解包? 填空 go 填空 新题 有界工作池让生产者等待,而不是无限创建任务。写出这种流量控制效果的名称 填空 go 填空 新题 函数调用 `context.WithTimeout` 后,即使操作提前结束,也必须调用哪个返回函数来释放资源? 填空 go 测验 新题 哪种工作循环设计能在请求取消后及时响应? 测验 go 填空 新题 在 `value, ok := <-ch` 中,已关闭通道被取空后,哪个结果会变为 false? 填空 go 测验 新题 一个服务结构体包含已经使用过的 `sync.Mutex`。哪项修改是安全的? 测验 go 测验 新题 `select` 如何处理通道为 nil 的发送或接收分支? 测验 go 测验 新题 向无缓冲通道发送值之前,必须发生什么,发送操作才能完成? 测验 go 填空 新题 写出 `sync` 包中的类型名称:它用于等待一组已知 goroutine 全部调用 `Done` 填空 go 填空 新题 写出把缓冲字节推送到底层 writer 的 `bufio.Writer` 方法名 填空 go 测验 新题 哪项操作能为 `http.Server` 实现有时限的优雅关闭? 测验 go 填空 新题 写出 `http.ResponseWriter` 的方法名:调用该方法后再修改普通响应头就太晚了 填空 go 测验 新题 HTTP API 必须拒绝拼错的 JSON 字段,而不是静默忽略。哪种解码器设置能落实这一契约? 测验 go 测验 新题 在身份验证边界,哪条审查规则能维护结构化日志契约? 测验 go 填空 新题 查询没有返回任何行时,`QueryRow(...).Scan(...)` 会返回哪个哨兵错误? 填空 go 测验 新题 一次 `io.Reader` 调用同时返回 `n > 0` 和 `err == io.EOF`。调用方应如何处理? 测验 go 测验 新题 仓储层需要把切片安全绑定到 SQL 的 `IN` 子句,并支持 PostgreSQL 占位符。哪组步骤正确? 测验 go 填空 新题 `testing.B` 的哪个字段提供基准测试主体必须使用的迭代次数? 填空 go 填空 新题 写出模糊测试方法名称:它在调用 `Fuzz` 前把已知输入加入种子语料库 填空 go 测验 新题 共享断言辅助函数把失败位置报告在自身代码行,而不是调用处。最小修复是什么? 测验 go 填空 新题 写出用于检查 Go CPU 或堆 profile 的标准命令 填空 go 填空 新题 哪个文件名后缀会让 Go 源文件进入测试构建? 填空 go 测验 新题 基准测试在测量循环前执行了昂贵的夹具初始化。哪项修改能隔离被测操作的成本? 测验 go 测验 新题 服务偶尔出现 goroutine 之间的调度延迟,但 CPU profile 没有显示主导函数。下一步最适合收集哪种证据? 测验 go 测验 新题 `go vet ./...` 成功后,可以得出哪项结论? 测验 go 测验 新题 哪项操作会在不执行延迟调用的情况下终止? 理解 Go 的 defer 求值与执行顺序、panic 展开以及 recover 的严格边界,避免清理失效和误吞故障。 go 预测输出 新题 这段程序会输出什么? 理解 Go 的 defer 求值与执行顺序、panic 展开以及 recover 的严格边界,避免清理失效和误吞故障。 go 测验 新题 recover 在什么情况下能停止 panic? 理解 Go 的 defer 求值与执行顺序、panic 展开以及 recover 的严格边界,避免清理失效和误吞故障。 go 审查 AI 代码 新题 审查生成的批量导出器 理解 Go 的 defer 求值与执行顺序、panic 展开以及 recover 的严格边界,避免清理失效和误吞故障。 go 找出 bug 新题 找出批量摘要里的 bug 理解 Go 的 defer 求值与执行顺序、panic 展开以及 recover 的严格边界,避免清理失效和误吞故障。 go 测验 新题 错误链中可能包含 *PathError 时,哪种 errors.As 用法正确? Go 把错误作为值显式返回;这里讲清错误契约、错误包装、errors.Is、errors.As、多错误以及 typed nil 陷阱。 go 测验 新题 关于 errors.Join,哪项说法正确? Go 把错误作为值显式返回;这里讲清错误契约、错误包装、errors.Is、errors.As、多错误以及 typed nil 陷阱。 go 预测输出 新题 这段程序会输出什么? Go 把错误作为值显式返回;这里讲清错误契约、错误包装、errors.Is、errors.As、多错误以及 typed nil 陷阱。 go 审查 AI 代码 新题 审查生成的会话加载器 Go 把错误作为值显式返回;这里讲清错误契约、错误包装、errors.Is、errors.As、多错误以及 typed nil 陷阱。 go 找出 bug 新题 找出带类型 nil 错误里的 bug Go 把错误作为值显式返回;这里讲清错误契约、错误包装、errors.Is、errors.As、多错误以及 typed nil 陷阱。 go 测验 新题 一个包替换了数据库,但希望调用方仍能匹配 ErrAccountMissing。哪种返回方式既保留契约,又不公开 sql.ErrNoRows? Go 错误包装用上下文串起失败原因,同时保留 errors.Is 和 errors.As 可检查的错误契约。 go 预测输出 新题 这段程序会输出哪三个布尔值? Go 错误包装用上下文串起失败原因,同时保留 errors.Is 和 errors.As 可检查的错误契约。 go 预测输出 新题 这段程序会输出什么? Go 错误包装用上下文串起失败原因,同时保留 errors.Is 和 errors.As 可检查的错误契约。 go 审查 AI 代码 新题 审查生成的操作错误包装器 Go 错误包装用上下文串起失败原因,同时保留 errors.Is 和 errors.As 可检查的错误契约。 go 找出 bug 新题 找出 errors.As 里的 bug Go 错误包装用上下文串起失败原因,同时保留 errors.Is 和 errors.As 可检查的错误契约。 go 预测输出 新题 这段程序会输出什么? Go 源文件如何通过包、声明、类型、函数和控制流组成可执行程序,以及初学者最容易混淆的作用域与字符串规则。 go 审查 AI 代码 新题 审查生成的限制摘要解析器 Go 源文件如何通过包、声明、类型、函数和控制流组成可执行程序,以及初学者最容易混淆的作用域与字符串规则。 go 测验 新题 当前代码块中已经声明的名称何时可以出现在 := 左侧? Go 源文件如何通过包、声明、类型、函数和控制流组成可执行程序,以及初学者最容易混淆的作用域与字符串规则。 go 找出 bug 新题 找出端口选择里的 bug Go 源文件如何通过包、声明、类型、函数和控制流组成可执行程序,以及初学者最容易混淆的作用域与字符串规则。 go 测验 新题 使用 for index, value := range text 遍历 UTF-8 字符串时,index 与 value 分别是什么? Go 源文件如何通过包、声明、类型、函数和控制流组成可执行程序,以及初学者最容易混淆的作用域与字符串规则。 go 测验 新题 在约束中,int 与 ~int 有什么区别? 用类型参数、约束与类型集编写可复用且类型安全的 Go 代码,并避开命名类型、推断和泛型方法的常见陷阱。 go 测验 新题 Stack[T] 的一个操作需要把值转换为新类型 U。哪种声明是合法的 Go? 用类型参数、约束与类型集编写可复用且类型安全的 Go 代码,并避开命名类型、推断和泛型方法的常见陷阱。 go 预测输出 新题 这段程序会输出什么? 用类型参数、约束与类型集编写可复用且类型安全的 Go 代码,并避开命名类型、推断和泛型方法的常见陷阱。 go 审查 AI 代码 新题 审查生成的稳定去重函数 用类型参数、约束与类型集编写可复用且类型安全的 Go 代码,并避开命名类型、推断和泛型方法的常见陷阱。 go 找出 bug 新题 找出泛型排序约束里的 bug 用类型参数、约束与类型集编写可复用且类型安全的 Go 代码,并避开命名类型、推断和泛型方法的常见陷阱。 go 测验 新题 已知 func (s *Sequence) Next() int,哪个编译期断言有效? Go 接口用方法集合描述行为;理解隐式实现、方法集、接口值与带类型的 nil,才能设计出窄而可靠的边界。 go 预测输出 新题 OrderID 值会进入哪个分支? Go 接口用方法集合描述行为;理解隐式实现、方法集、接口值与带类型的 nil,才能设计出窄而可靠的边界。 go 预测输出 新题 这段程序会输出什么? Go 接口用方法集合描述行为;理解隐式实现、方法集、接口值与带类型的 nil,才能设计出窄而可靠的边界。 go 审查 AI 代码 新题 审查生成的告警发送器 Go 接口用方法集合描述行为;理解隐式实现、方法集、接口值与带类型的 nil,才能设计出窄而可靠的边界。 go 找出 bug 新题 找出 map[any] 查询里的 bug Go 接口用方法集合描述行为;理解隐式实现、方法集、接口值与带类型的 nil,才能设计出窄而可靠的边界。 go 测验 新题 以下哪项是合法的 Go map 类型声明? Go map 用键定位值;理解可比较键、零值、共享语义、无序遍历和并发边界,才能避开常见的数据错误。 go 测验 新题 当 records 是 nil 的 map[string]int 时,哪项操作会发生 panic? Go map 用键定位值;理解可比较键、零值、共享语义、无序遍历和并发边界,才能避开常见的数据错误。 go 预测输出 新题 这段程序会输出什么? Go map 用键定位值;理解可比较键、零值、共享语义、无序遍历和并发边界,才能避开常见的数据错误。 go 审查 AI 代码 新题 审查生成的价格存储 Go map 用键定位值;理解可比较键、零值、共享语义、无序遍历和并发边界,才能避开常见的数据错误。 go 找出 bug 新题 找出 map 字段更新里的 bug Go map 用键定位值;理解可比较键、零值、共享语义、无序遍历和并发边界,才能避开常见的数据错误。 go 测验 新题 已知 func (job *Job) Cancel(),哪个针对 interface{ Cancel() } 的编译期断言可以成立? Go 方法把行为关联到自定义类型;掌握值与指针接收者、方法集、方法值和嵌入提升,才能正确设计接口与状态更新。 go 预测输出 新题 保存的方法值会输出什么? Go 方法把行为关联到自定义类型;掌握值与指针接收者、方法集、方法值和嵌入提升,才能正确设计接口与状态更新。 go 预测输出 新题 这段程序会输出什么? Go 方法把行为关联到自定义类型;掌握值与指针接收者、方法集、方法值和嵌入提升,才能正确设计接口与状态更新。 go 审查 AI 代码 新题 审查生成的配额跟踪器 Go 方法把行为关联到自定义类型;掌握值与指针接收者、方法集、方法值和嵌入提升,才能正确设计接口与状态更新。 go 找出 bug 新题 找出 map 元素方法里的 bug Go 方法把行为关联到自定义类型;掌握值与指针接收者、方法集、方法值和嵌入提升,才能正确设计接口与状态更新。 go 预测输出 新题 这段程序会输出什么? Go 的 reflect 包在运行时检查类型和值;掌握 Kind、可设置性、结构体标签与 nil 边界,避免动态代码中的 panic。 go 审查 AI 代码 新题 审查生成的设置更新器 Go 的 reflect 包在运行时检查类型和值;掌握 Kind、可设置性、结构体标签与 nil 边界,避免动态代码中的 panic。 go 找出 bug 新题 找出 IsNil 辅助函数里的 bug Go 的 reflect 包在运行时检查类型和值;掌握 Kind、可设置性、结构体标签与 nil 边界,避免动态代码中的 panic。 go 测验 新题 解码器为什么会使用 StructTag.Lookup("config"),而不是 Get("config")? Go 的 reflect 包在运行时检查类型和值;掌握 Kind、可设置性、结构体标签与 nil 边界,避免动态代码中的 panic。 go 测验 新题 用一个 reflect.Value 设置另一个值之前,默认应使用哪项检查? Go 的 reflect 包在运行时检查类型和值;掌握 Kind、可设置性、结构体标签与 nil 边界,避免动态代码中的 panic。 go 测验 新题 某方法声明为 func (*Worker) Stop()。哪个反射接收者能通过 MethodByName 找到它? Go 反射在运行时检查类型和值;理解 Type、Value、Kind、可设置性和 nil 边界,才能安全编写动态代码。 go 测验 新题 遍历可能包含未导出字段的结构体时,哪项检查能保护 Value.Interface()? Go 反射在运行时检查类型和值;理解 Type、Value、Kind、可设置性和 nil 边界,才能安全编写动态代码。 go 预测输出 新题 这段程序会输出什么? Go 反射在运行时检查类型和值;理解 Type、Value、Kind、可设置性和 nil 边界,才能安全编写动态代码。 go 审查 AI 代码 新题 审查生成的设置修补器 Go 反射在运行时检查类型和值;理解 Type、Value、Kind、可设置性和 nil 边界,才能安全编写动态代码。 go 找出 bug 新题 找出 IsNil 辅助函数里的 bug Go 反射在运行时检查类型和值;理解 Type、Value、Kind、可设置性和 nil 边界,才能安全编写动态代码。 go 测验 新题 对 [][]byte 使用 slices.Clone 会提供哪一层独立性? 切片是 Go 中处理连续元素的动态视图;理解长度、容量、底层数组与 append,才能避开共享内存带来的隐蔽错误。 go 测验 新题 关于 var items []string 与 items := []string{},哪项说法正确? 切片是 Go 中处理连续元素的动态视图;理解长度、容量、底层数组与 append,才能避开共享内存带来的隐蔽错误。 go 预测输出 新题 这段程序会输出什么? 切片是 Go 中处理连续元素的动态视图;理解长度、容量、底层数组与 append,才能避开共享内存带来的隐蔽错误。 go 审查 AI 代码 新题 审查生成的事件收集器 切片是 Go 中处理连续元素的动态视图;理解长度、容量、底层数组与 append,才能避开共享内存带来的隐蔽错误。 go 找出 bug 新题 找出 addTag 辅助函数里的 bug 切片是 Go 中处理连续元素的动态视图;理解长度、容量、底层数组与 append,才能避开共享内存带来的隐蔽错误。 go 找出 bug 新题 找出预分配切片里的 bug 切片是 Go 中处理连续元素的动态视图;理解长度、容量、底层数组与 append,才能避开共享内存带来的隐蔽错误。 go 测验 新题 哪种结构体可以安全用作 map 键,并且不会发生运行时可比较性 panic? Go 结构体把相关字段组成值;理解零值、复制、可比较性、嵌入和标签,才能避开能编译却共享了错误状态的代码。 go 预测输出 新题 复制结构体后,这段程序会输出什么? Go 结构体把相关字段组成值;理解零值、复制、可比较性、嵌入和标签,才能避开能编译却共享了错误状态的代码。 go 预测输出 新题 这段程序会输出什么? Go 结构体把相关字段组成值;理解零值、复制、可比较性、嵌入和标签,才能避开能编译却共享了错误状态的代码。 go 审查 AI 代码 新题 审查生成的资料模型 Go 结构体把相关字段组成值;理解零值、复制、可比较性、嵌入和标签,才能避开能编译却共享了错误状态的代码。 go 找出 bug 新题 找出 Activate 方法里的 bug Go 结构体把相关字段组成值;理解零值、复制、可比较性、嵌入和标签,才能避开能编译却共享了错误状态的代码。 go 测验 新题 类型要满足约束 `interface { ~string; IsValid() bool }`,必须具备什么条件? 理解 Go 类型参数的声明、约束、类型集与推断规则,并处理命名类型、泛型方法和 comparable 的边界。 go 预测输出 新题 这段程序会输出什么? 理解 Go 类型参数的声明、约束、类型集与推断规则,并处理命名类型、泛型方法和 comparable 的边界。 go 审查 AI 代码 新题 审查泛型记录索引 理解 Go 类型参数的声明、约束、类型集与推断规则,并处理命名类型、泛型方法和 comparable 的边界。 go 找出 bug 新题 找出 any 约束里的 bug 理解 Go 类型参数的声明、约束、类型集与推断规则,并处理命名类型、泛型方法和 comparable 的边界。 go 找出 bug 新题 找出 Equal 调用里的 bug 理解 Go 类型参数的声明、约束、类型集与推断规则,并处理命名类型、泛型方法和 comparable 的边界。
没有符合筛选条件的练习。