练习 / swift

Swift 练习

Swift 的全部练习都来自可随时对照的主题。

68项练习 离线运行
swift 测验 新题 关于 ARC 的作用范围,哪项说法准确? Swift ARC 管理类实例的生命周期;理解强、弱与无主引用,定位对象图和闭包中的强引用循环。 入门 1分钟 · 来自 自动引用计数 swift 测验 新题 缓存中的子对象可能比父对象活得更久,而且调用方能处理父对象缺失。哪种声明最适合这个回指? Swift ARC 管理类实例的生命周期;理解强、弱与无主引用,定位对象图和闭包中的强引用循环。 进阶 1分钟 · 来自 自动引用计数 swift 预测输出 新题 这段程序会输出什么? Swift ARC 管理类实例的生命周期;理解强、弱与无主引用,定位对象图和闭包中的强引用循环。 入门 2分钟 · 来自 自动引用计数 swift 预测输出 新题 这段程序会输出哪两个布尔值? Swift ARC 管理类实例的生命周期;理解强、弱与无主引用,定位对象图和闭包中的强引用循环。 进阶 2分钟 · 来自 自动引用计数 swift 审查 AI 代码 新题 审查生成的仪表板绑定 Swift ARC 管理类实例的生命周期;理解强、弱与无主引用,定位对象图和闭包中的强引用循环。 高级 6分钟 · 来自 自动引用计数 swift 找出 bug 新题 找出对象循环引用里的 bug Swift ARC 管理类实例的生命周期;理解强、弱与无主引用,定位对象图和闭包中的强引用循环。 进阶 4分钟 · 来自 自动引用计数 swift 测验 新题 关于 @escaping,哪项说法准确? 理解 Swift 闭包的函数类型、值捕获、逃逸规则、捕获列表与自动闭包,并写出生命周期和并发语义明确的回调。 入门 1分钟 · 来自 闭包 swift 预测输出 新题 这段程序会输出什么? 理解 Swift 闭包的函数类型、值捕获、逃逸规则、捕获列表与自动闭包,并写出生命周期和并发语义明确的回调。 进阶 2分钟 · 来自 闭包 swift 审查 AI 代码 新题 审查生成的搜索处理器 理解 Swift 闭包的函数类型、值捕获、逃逸规则、捕获列表与自动闭包,并写出生命周期和并发语义明确的回调。 高级 6分钟 · 来自 闭包 swift 找出 bug 新题 找出 JobQueue 里的 bug 理解 Swift 闭包的函数类型、值捕获、逃逸规则、捕获列表与自动闭包,并写出生命周期和并发语义明确的回调。 进阶 4分钟 · 来自 闭包 swift 测验 新题 在 for index in 0..<3 中追加三个闭包,并在循环后调用。哪项捕获说明正确? 理解 Swift 闭包的函数类型、值捕获、逃逸规则、捕获列表与自动闭包,并写出生命周期和并发语义明确的回调。 进阶 1分钟 · 来自 闭包 swift 测验 新题 一个传输模型只读取服务端响应,而且绝不能输出。哪种一致性最准确地表达这个契约? 用 Swift 的类型系统定义可编码数据,掌握自动合成、自定义键映射、缺失值策略与可定位的解码错误。 入门 1分钟 · 来自 Codable swift 测验 新题 哪组调用能保留“键缺失”与“JSON 显式 null”之间的区别? 用 Swift 的类型系统定义可编码数据,掌握自动合成、自定义键映射、缺失值策略与可定位的解码错误。 进阶 1分钟 · 来自 Codable swift 预测输出 新题 这段程序会输出什么? 用 Swift 的类型系统定义可编码数据,掌握自动合成、自定义键映射、缺失值策略与可定位的解码错误。 进阶 2分钟 · 来自 Codable swift 审查 AI 代码 新题 审查生成的订单解码器 用 Swift 的类型系统定义可编码数据,掌握自动合成、自定义键映射、缺失值策略与可定位的解码错误。 高级 6分钟 · 来自 Codable swift 找出 bug 新题 找出 Event 解码器里的 bug 用 Swift 的类型系统定义可编码数据,掌握自动合成、自定义键映射、缺失值策略与可定位的解码错误。 进阶 4分钟 · 来自 Codable swift 测验 新题 哪种模型能在每个失败值中保存不同的服务端消息? 用 Swift 枚举表示有限状态,并通过穷尽的模式匹配安全地提取关联值、筛选分支和处理类型演进。 入门 1分钟 · 来自 枚举与模式匹配 swift 测验 新题 什么情况下应优先使用 @unknown default,而不是普通 default? 用 Swift 枚举表示有限状态,并通过穷尽的模式匹配安全地提取关联值、筛选分支和处理类型演进。 高级 1分钟 · 来自 枚举与模式匹配 swift 预测输出 新题 这段程序会输出什么? 用 Swift 枚举表示有限状态,并通过穷尽的模式匹配安全地提取关联值、筛选分支和处理类型演进。 入门 2分钟 · 来自 枚举与模式匹配 swift 审查 AI 代码 新题 审查生成的订单状态更新 用 Swift 枚举表示有限状态,并通过穷尽的模式匹配安全地提取关联值、筛选分支和处理类型演进。 高级 6分钟 · 来自 枚举与模式匹配 swift 找出 bug 新题 找出 .copying 分支里的 bug 用 Swift 枚举表示有限状态,并通过穷尽的模式匹配安全地提取关联值、筛选分支和处理类型演进。 进阶 4分钟 · 来自 枚举与模式匹配 swift 测验 新题 什么情况下使用 try? 最能准确表达 API 语义? 用 Error、throw、do-catch、类型化 throws 与 Result 表达可恢复失败,并在正确的边界保留错误信息。 入门 1分钟 · 来自 错误处理 swift 测验 新题 函数声明中的 throws(ParseError) 增加了什么保证? 用 Error、throw、do-catch、类型化 throws 与 Result 表达可恢复失败,并在正确的边界保留错误信息。 进阶 1分钟 · 来自 错误处理 swift 预测输出 新题 这段程序会输出什么? 用 Error、throw、do-catch、类型化 throws 与 Result 表达可恢复失败,并在正确的边界保留错误信息。 入门 2分钟 · 来自 错误处理 swift 审查 AI 代码 新题 审查生成的订单导入器 用 Error、throw、do-catch、类型化 throws 与 Result 表达可恢复失败,并在正确的边界保留错误信息。 高级 6分钟 · 来自 错误处理 swift 找出 bug 新题 找出资料回退里的 bug 用 Error、throw、do-catch、类型化 throws 与 Result 表达可恢复失败,并在正确的边界保留错误信息。 进阶 4分钟 · 来自 错误处理 swift 测验 新题 Swift 扩展可以合法添加哪种声明? 用 Swift 扩展为现有类型添加计算属性、方法与协议遵循,并避开静态分派、命名冲突和追溯遵循陷阱。 入门 1分钟 · 来自 扩展 swift 预测输出 新题 这段程序会输出什么? 用 Swift 扩展为现有类型添加计算属性、方法与协议遵循,并避开静态分派、命名冲突和追溯遵循陷阱。 进阶 2分钟 · 来自 扩展 swift 测验 新题 Swift 协议遵循上的 @retroactive 表示什么? 用 Swift 扩展为现有类型添加计算属性、方法与协议遵循,并避开静态分派、命名冲突和追溯遵循陷阱。 高级 1分钟 · 来自 扩展 swift 审查 AI 代码 新题 审查生成的客户扩展 用 Swift 扩展为现有类型添加计算属性、方法与协议遵循,并避开静态分派、命名冲突和追溯遵循陷阱。 高级 6分钟 · 来自 扩展 swift 找出 bug 新题 找出安全下标里的 bug 用 Swift 扩展为现有类型添加计算属性、方法与协议遵循,并避开静态分派、命名冲突和追溯遵循陷阱。 进阶 4分钟 · 来自 扩展 swift 测验 新题 关于 var retryCount = 0,哪项说法正确? 通过可运行程序掌握 Swift 的静态类型、不可变与可变绑定、安全转换、控制流、函数、集合和值语义。 入门 1分钟 · 来自 Swift 基础 swift 测验 新题 为什么 Swift 不允许对 String 使用 text[0]? 通过可运行程序掌握 Swift 的静态类型、不可变与可变绑定、安全转换、控制流、函数、集合和值语义。 入门 1分钟 · 来自 Swift 基础 swift 预测输出 新题 这段程序会输出什么? 通过可运行程序掌握 Swift 的静态类型、不可变与可变绑定、安全转换、控制流、函数、集合和值语义。 入门 2分钟 · 来自 Swift 基础 swift 审查 AI 代码 新题 审查生成的签到汇总 通过可运行程序掌握 Swift 的静态类型、不可变与可变绑定、安全转换、控制流、函数、集合和值语义。 高级 6分钟 · 来自 Swift 基础 swift 找出 bug 新题 找出地区查询里的 bug 通过可运行程序掌握 Swift 的静态类型、不可变与可变绑定、安全转换、控制流、函数、集合和值语义。 进阶 4分钟 · 来自 Swift 基础 swift 预测输出 新题 这段程序会输出什么? 用类型参数、约束、where 子句与关联类型表达可复用的 Swift 代码,同时保留编译期类型关系。 入门 2分钟 · 来自 泛型 swift 测验 新题 `protocol Catalog<Item>` 中的 `Item` 表示什么? 用类型参数、约束、where 子句与关联类型表达可复用的 Swift 代码,同时保留编译期类型关系。 进阶 1分钟 · 来自 泛型 swift 审查 AI 代码 新题 审查生成的泛型存储 用类型参数、约束、where 子句与关联类型表达可复用的 Swift 代码,同时保留编译期类型关系。 高级 6分钟 · 来自 泛型 swift 测验 新题 `where Left.Element == Right.Element` 要求什么? 用类型参数、约束、where 子句与关联类型表达可复用的 Swift 代码,同时保留编译期类型关系。 进阶 1分钟 · 来自 泛型 swift 找出 bug 新题 找出泛型最小值里的 bug 用类型参数、约束、where 子句与关联类型表达可复用的 Swift 代码,同时保留编译期类型关系。 入门 4分钟 · 来自 泛型 swift 测验 新题 为什么 input.flatMap { Int($0) } 返回 Int?,而不是 Int??? 用类型系统表达值缺失,掌握可选绑定、可选链、空合并、转换与嵌套可选值,并保留业务状态的准确语义。 进阶 1分钟 · 来自 可选类型 swift 测验 新题 关于 Swift 中的 String?,哪项说法准确? 用类型系统表达值缺失,掌握可选绑定、可选链、空合并、转换与嵌套可选值,并保留业务状态的准确语义。 入门 1分钟 · 来自 可选类型 swift 预测输出 新题 这些字典查询会依次输出哪三种状态? 用类型系统表达值缺失,掌握可选绑定、可选链、空合并、转换与嵌套可选值,并保留业务状态的准确语义。 进阶 2分钟 · 来自 可选类型 swift 预测输出 新题 这段程序会输出什么? 用类型系统表达值缺失,掌握可选绑定、可选链、空合并、转换与嵌套可选值,并保留业务状态的准确语义。 入门 2分钟 · 来自 可选类型 swift 审查 AI 代码 新题 审查生成的账户导入器 用类型系统表达值缺失,掌握可选绑定、可选链、空合并、转换与嵌套可选值,并保留业务状态的准确语义。 高级 8分钟 · 来自 可选类型 swift 找出 bug 新题 找出邮箱查询里的 bug 用类型系统表达值缺失,掌握可选绑定、可选链、空合并、转换与嵌套可选值,并保留业务状态的准确语义。 进阶 4分钟 · 来自 可选类型 swift 测验 新题 在 Swift 6 语言模式中,哪项说法正确? 理解 Swift 属性包装器如何合成存储、包装值与投影值,并正确处理初始化、复制、Codable 和并发边界。 高级 1分钟 · 来自 属性包装器 swift 预测输出 新题 这段程序会输出什么? 理解 Swift 属性包装器如何合成存储、包装值与投影值,并正确处理初始化、复制、Codable 和并发边界。 入门 2分钟 · 来自 属性包装器 swift 审查 AI 代码 新题 审查生成的 JSON 设置包装器 理解 Swift 属性包装器如何合成存储、包装值与投影值,并正确处理初始化、复制、Codable 和并发边界。 高级 6分钟 · 来自 属性包装器 swift 找出 bug 新题 找出 Atomic 自增里的 bug 理解 Swift 属性包装器如何合成存储、包装值与投影值,并正确处理初始化、复制、Codable 和并发边界。 进阶 4分钟 · 来自 属性包装器 swift 测验 新题 对于 @Rule var score: Int,哪项合成名称说明准确? 理解 Swift 属性包装器如何合成存储、包装值与投影值,并正确处理初始化、复制、Codable 和并发边界。 入门 1分钟 · 来自 属性包装器 swift 测验 新题 哪个边界适合在同一数组中保存 Circle 与 Rectangle,同时只公开 Shape 要求? 用协议定义能力边界,理解要求、遵循、默认实现、关联类型,以及 some 与 any 表达的不同类型关系。 入门 1分钟 · 来自 协议 swift 预测输出 新题 这段程序会输出什么? 用协议定义能力边界,理解要求、遵循、默认实现、关联类型,以及 some 与 any 表达的不同类型关系。 进阶 2分钟 · 来自 协议 swift 测验 新题 `var token: String { get }` 要求遵循类型提供什么? 用协议定义能力边界,理解要求、遵循、默认实现、关联类型,以及 some 与 any 表达的不同类型关系。 入门 1分钟 · 来自 协议 swift 审查 AI 代码 新题 审查生成的处理器注册表 用协议定义能力边界,理解要求、遵循、默认实现、关联类型,以及 some 与 any 表达的不同类型关系。 高级 6分钟 · 来自 协议 swift 找出 bug 新题 找出自增协议里的 bug 用协议定义能力边界,理解要求、遵循、默认实现、关联类型,以及 some 与 any 表达的不同类型关系。 入门 4分钟 · 来自 协议 swift 测验 新题 遵循 `protocol Catalog<Item>` 时,谁决定其中的 `Item`? 用 Swift 协议声明能力,以泛型保留类型关系,并准确选择关联类型、some 与 any 的抽象边界。 进阶 1分钟 · 来自 协议约束与存在类型 swift 测验 新题 返回值由实现方选择一种隐藏的具体类型时,哪种形式最合适? 用 Swift 协议声明能力,以泛型保留类型关系,并准确选择关联类型、some 与 any 的抽象边界。 进阶 1分钟 · 来自 协议约束与存在类型 swift 测验 新题 容器中只有 `sortedValues()` 会比较元素。`Element: Comparable` 通常应放在哪里? 用 Swift 协议声明能力,以泛型保留类型关系,并准确选择关联类型、some 与 any 的抽象边界。 进阶 1分钟 · 来自 协议约束与存在类型 swift 预测输出 新题 这段程序会输出什么? 用 Swift 协议声明能力,以泛型保留类型关系,并准确选择关联类型、some 与 any 的抽象边界。 入门 2分钟 · 来自 协议约束与存在类型 swift 审查 AI 代码 新题 审查生成的泛型注册表 用 Swift 协议声明能力,以泛型保留类型关系,并准确选择关联类型、some 与 any 的抽象边界。 高级 6分钟 · 来自 协议约束与存在类型 swift 找出 bug 新题 找出协议标签里的 bug 用 Swift 协议声明能力,以泛型保留类型关系,并准确选择关联类型、some 与 any 的抽象边界。 进阶 4分钟 · 来自 协议约束与存在类型 swift 测验 新题 当 Session 是含可变属性的类时,let session = Session() 保证什么? 用值语义、引用恒等性、初始化与写时复制,判断 Swift 模型应使用结构体还是类,并避开共享可变状态。 入门 1分钟 · 来自 结构体与类 swift 测验 新题 公共库应如何对待结构体合成的成员初始化器? 用值语义、引用恒等性、初始化与写时复制,判断 Swift 模型应使用结构体还是类,并避开共享可变状态。 进阶 1分钟 · 来自 结构体与类 swift 预测输出 新题 这段程序会输出什么? 用值语义、引用恒等性、初始化与写时复制,判断 Swift 模型应使用结构体还是类,并避开共享可变状态。 进阶 2分钟 · 来自 结构体与类 swift 审查 AI 代码 新题 审查生成的发票副本 用值语义、引用恒等性、初始化与写时复制,判断 Swift 模型应使用结构体还是类,并避开共享可变状态。 高级 6分钟 · 来自 结构体与类 swift 找出 bug 新题 找出 Counter 绑定里的 bug 用值语义、引用恒等性、初始化与写时复制,判断 Swift 模型应使用结构体还是类,并避开共享可变状态。 入门 4分钟 · 来自 结构体与类