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的边界。
没有符合筛选条件的练习。