练习 / kt

Kotlin练习

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

66项练习 离线运行
kt 测验 新题 如何区分键不存在与键存在但值为null? 掌握List、Set、Map、只读与可变接口、集合操作链和Sequence惰性求值,并避开别名、键覆盖与无限序列陷阱。 进阶 1分钟 · 来自集合 kt 预测输出 新题 终结操作执行时会产生哪组输出? 掌握List、Set、Map、只读与可变接口、集合操作链和Sequence惰性求值,并避开别名、键覆盖与无限序列陷阱。 进阶 2分钟 · 来自集合 kt 预测输出 新题 这段程序会输出什么? 掌握List、Set、Map、只读与可变接口、集合操作链和Sequence惰性求值,并避开别名、键覆盖与无限序列陷阱。 入门 2分钟 · 来自集合 kt 审查AI代码 新题 审查生成的启用商品索引 掌握List、Set、Map、只读与可变接口、集合操作链和Sequence惰性求值,并避开别名、键覆盖与无限序列陷阱。 高级 6分钟 · 来自集合 kt 测验 新题 哪个操作会触发求值并返回非Sequence结果? 掌握List、Set、Map、只读与可变接口、集合操作链和Sequence惰性求值,并避开别名、键覆盖与无限序列陷阱。 入门 1分钟 · 来自集合 kt 找出bug 新题 找出SKU索引里的bug 掌握List、Set、Map、只读与可变接口、集合操作链和Sequence惰性求值,并避开别名、键覆盖与无限序列陷阱。 进阶 4分钟 · 来自集合 kt 测验 新题 两个Packet实例分别持有byteArrayOf(1, 2)。对于data class Packet(val bytes: ByteArray),packetA == pack… 用数据类定义值语义,理解编译器生成的相等性、解构与浅拷贝,并避开可变键、数组和敏感字段陷阱。 进阶 1分钟 · 来自数据类 kt 测验 新题 copy() 创建数据类实例时,已经初始化过的类体属性会怎样? 用数据类定义值语义,理解编译器生成的相等性、解构与浅拷贝,并避开可变键、数组和敏感字段陷阱。 进阶 1分钟 · 来自数据类 kt 测验 新题 默认情况下,哪些属性会参与数据类生成的全部成员? 用数据类定义值语义,理解编译器生成的相等性、解构与浅拷贝,并避开可变键、数组和敏感字段陷阱。 入门 1分钟 · 来自数据类 kt 预测输出 新题 这段程序会输出什么? 用数据类定义值语义,理解编译器生成的相等性、解构与浅拷贝,并避开可变键、数组和敏感字段陷阱。 入门 2分钟 · 来自数据类 kt 审查AI代码 新题 审查生成的购物车快照 用数据类定义值语义,理解编译器生成的相等性、解构与浅拷贝,并避开可变键、数组和敏感字段陷阱。 高级 6分钟 · 来自数据类 kt 找出bug 新题 找出可变数据类键里的bug 用数据类定义值语义,理解编译器生成的相等性、解构与浅拷贝,并避开可变键、数组和敏感字段陷阱。 进阶 4分钟 · 来自数据类 kt 测验 新题 当values的类型为Map<String, Any?>时,val age: Int by values能保证什么? Kotlin委托属性把getter和setter交给可复用对象;掌握lazy、observable、自定义委托以及共享状态和线程安全陷阱。 进阶 1分钟 · 来自委托属性 kt 预测输出 新题 这段程序会输出什么? Kotlin委托属性把getter和setter交给可复用对象;掌握lazy、observable、自定义委托以及共享状态和线程安全陷阱。 入门 2分钟 · 来自委托属性 kt 预测输出 新题 拒绝赋值后,这段程序会输出什么? Kotlin委托属性把getter和setter交给可复用对象;掌握lazy、observable、自定义委托以及共享状态和线程安全陷阱。 入门 2分钟 · 来自委托属性 kt 测验 新题 成员委托属性的provideDelegate() 在什么时候调用? Kotlin委托属性把getter和setter交给可复用对象;掌握lazy、observable、自定义委托以及共享状态和线程安全陷阱。 进阶 1分钟 · 来自委托属性 kt 审查AI代码 新题 审查生成的账户字段委托 Kotlin委托属性把getter和setter交给可复用对象;掌握lazy、observable、自定义委托以及共享状态和线程安全陷阱。 高级 6分钟 · 来自委托属性 kt 找出bug 新题 找出单例委托里的bug Kotlin委托属性把getter和setter交给可复用对象;掌握lazy、observable、自定义委托以及共享状态和线程安全陷阱。 进阶 4分钟 · 来自委托属性 kt 测验 新题 两个嵌套接收者类型带有同一个DSL标记。内层块怎样有意访问外层接收者? 用带接收者的lambda、类型安全构建器与DSL标记设计边界清楚、可验证的Kotlin内部领域语言。 进阶 1分钟 · 来自DSL kt 预测输出 新题 这个基于接收者的构建器会输出什么? 用带接收者的lambda、类型安全构建器与DSL标记设计边界清楚、可验证的Kotlin内部领域语言。 入门 2分钟 · 来自DSL kt 审查AI代码 新题 审查生成的数据库DSL 用带接收者的lambda、类型安全构建器与DSL标记设计边界清楚、可验证的Kotlin内部领域语言。 高级 6分钟 · 来自DSL kt 找出bug 新题 找出菜单快照里的bug 用带接收者的lambda、类型安全构建器与DSL标记设计边界清楚、可验证的Kotlin内部领域语言。 进阶 4分钟 · 来自DSL kt 测验 新题 只有最后阶段能产生结果时,分阶段构建器保证了什么? 用带接收者的lambda、类型安全构建器与DSL标记设计边界清楚、可验证的Kotlin内部领域语言。 进阶 1分钟 · 来自DSL kt 测验 新题 某个SQL DSL接收String并把它插入查询。Kotlin类型检查证明了什么? 用带接收者的lambda、类型安全构建器与DSL标记设计边界清楚、可验证的Kotlin内部领域语言。 进阶 1分钟 · 来自DSL kt 测验 新题 类型与导入的扩展都定义了兼容签名的render()。value.render() 会选择哪个声明? 用接收者语法为现有类型补充函数与计算属性,并理解静态解析、成员优先、可空接收者和作用域边界。 入门 1分钟 · 来自扩展 kt 预测输出 新题 直接调用与安全调用的结果有什么不同? 用接收者语法为现有类型补充函数与计算属性,并理解静态解析、成员优先、可空接收者和作用域边界。 进阶 2分钟 · 来自扩展 kt 预测输出 新题 这段程序会输出什么? 用接收者语法为现有类型补充函数与计算属性,并理解静态解析、成员优先、可空接收者和作用域边界。 进阶 2分钟 · 来自扩展 kt 审查AI代码 新题 审查生成的账户标签扩展 用接收者语法为现有类型补充函数与计算属性,并理解静态解析、成员优先、可空接收者和作用域边界。 高级 6分钟 · 来自扩展 kt 找出bug 新题 找出扩展属性里的bug 用接收者语法为现有类型补充函数与计算属性,并理解静态解析、成员优先、可空接收者和作用域边界。 入门 4分钟 · 来自扩展 kt 测验 新题 已经列出枚举所有成员的when表达式,为什么应省略else? 从只读引用、静态类型与空安全出发,掌握Kotlin的表达式、控制流和函数调用边界。 进阶 1分钟 · 来自Kotlin基础 kt 测验 新题 count的类型是Int。哪个表达式能把它传给fun store(value: Long)? 从只读引用、静态类型与空安全出发,掌握Kotlin的表达式、控制流和函数调用边界。 入门 1分钟 · 来自Kotlin基础 kt 预测输出 新题 这段程序会输出什么? 从只读引用、静态类型与空安全出发,掌握Kotlin的表达式、控制流和函数调用边界。 入门 2分钟 · 来自Kotlin基础 kt 审查AI代码 新题 审查生成的发票合计 从只读引用、静态类型与空安全出发,掌握Kotlin的表达式、控制流和函数调用边界。 高级 6分钟 · 来自Kotlin基础 kt 找出bug 新题 找出名称长度函数里的bug 从只读引用、静态类型与空安全出发,掌握Kotlin的表达式、控制流和函数调用边界。 入门 4分钟 · 来自Kotlin基础 kt 测验 新题 对于 @JvmInline value class UserId(val value: Long),哪个使用位置通常需要装箱表示? 使用`@JvmInline value class`建模单值领域类型,理解JVM表示、装箱边界、构造校验与Java互操作。 进阶 1分钟 · 来自内联值类 kt 测验 新题 要发布一个可从Java调用、而Kotlin API接受内联值类的函数,哪种做法可靠? 使用`@JvmInline value class`建模单值领域类型,理解JVM表示、装箱边界、构造校验与Java互操作。 高级 1分钟 · 来自内联值类 kt 预测输出 新题 这段程序会输出什么? 使用`@JvmInline value class`建模单值领域类型,理解JVM表示、装箱边界、构造校验与Java互操作。 入门 2分钟 · 来自内联值类 kt 审查AI代码 新题 审查生成的API令牌包装器 使用`@JvmInline value class`建模单值领域类型,理解JVM表示、装箱边界、构造校验与Java互操作。 高级 6分钟 · 来自内联值类 kt 找出bug 新题 找出值类映射键里的bug 使用`@JvmInline value class`建模单值领域类型,理解JVM表示、装箱边界、构造校验与Java互操作。 进阶 4分钟 · 来自内联值类 kt 测验 新题 哪个类型表示“可缺省的函数,它接收String并返回Int”? Lambda表达式把行为表示为有静态类型的值;这里讲清函数类型、捕获、接收者、返回控制与JVM边界。 入门 1分钟 · 来自Lambda表达式 kt 预测输出 新题 这个程序会输出什么? Lambda表达式把行为表示为有静态类型的值;这里讲清函数类型、捕获、接收者、返回控制与JVM边界。 入门 2分钟 · 来自Lambda表达式 kt 预测输出 新题 传入尾随lambda后会输出哪些行? Lambda表达式把行为表示为有静态类型的值;这里讲清函数类型、捕获、接收者、返回控制与JVM边界。 进阶 2分钟 · 来自Lambda表达式 kt 审查AI代码 新题 审查生成的事件注册表 Lambda表达式把行为表示为有静态类型的值;这里讲清函数类型、捕获、接收者、返回控制与JVM边界。 高级 6分钟 · 来自Lambda表达式 kt 找出bug 新题 找出回调索引捕获里的bug Lambda表达式把行为表示为有静态类型的值;这里讲清函数类型、捕获、接收者、返回控制与JVM边界。 进阶 4分钟 · 来自Lambda表达式 kt 测验 新题 哪个类型同时允许列表本身和其中的每个元素为null? 用可空类型、智能转换、安全调用与Elvis运算符表达缺失值,并在Java互操作和生成代码边界避免运行时空指针异常。 入门 1分钟 · 来自空安全 kt 测验 新题 未注解的Java方法返回平台String类型。实现不可信时,哪项第一步能如实表达Kotlin边界? 用可空类型、智能转换、安全调用与Elvis运算符表达缺失值,并在Java互操作和生成代码边界避免运行时空指针异常。 进阶 1分钟 · 来自空安全 kt 预测输出 新题 这段程序会输出什么? 用可空类型、智能转换、安全调用与Elvis运算符表达缺失值,并在Java互操作和生成代码边界避免运行时空指针异常。 入门 2分钟 · 来自空安全 kt 审查AI代码 新题 审查生成的客户导入器 用可空类型、智能转换、安全调用与Elvis运算符表达缺失值,并在Java互操作和生成代码边界避免运行时空指针异常。 高级 6分钟 · 来自空安全 kt 找出bug 新题 找出主机名读取里的bug 用可空类型、智能转换、安全调用与Elvis运算符表达缺失值,并在Java互操作和生成代码边界避免运行时空指针异常。 进阶 4分钟 · 来自空安全 kt 测验 新题 一组解析器需要构造时持有的共享缓存,以及固定的解析模板。哪个起点最符合该契约? 用类、接口、继承与组合建立清晰的对象边界,理解Kotlin的默认final、运行时多态、构造顺序和可见性规则。 进阶 1分钟 · 来自面向对象编程 kt 测验 新题 BillingService需要通过可替换目标发送审计记录。哪种关系能保持最小边界? 用类、接口、继承与组合建立清晰的对象边界,理解Kotlin的默认final、运行时多态、构造顺序和可见性规则。 进阶 1分钟 · 来自面向对象编程 kt 测验 新题 哪个声明允许子类覆盖calculate()? 用类、接口、继承与组合建立清晰的对象边界,理解Kotlin的默认final、运行时多态、构造顺序和可见性规则。 入门 1分钟 · 来自面向对象编程 kt 预测输出 新题 这段程序会输出什么? 用类、接口、继承与组合建立清晰的对象边界,理解Kotlin的默认final、运行时多态、构造顺序和可见性规则。 入门 2分钟 · 来自面向对象编程 kt 审查AI代码 新题 审查生成的通知服务 用类、接口、继承与组合建立清晰的对象边界,理解Kotlin的默认final、运行时多态、构造顺序和可见性规则。 高级 6分钟 · 来自面向对象编程 kt 找出bug 新题 找出账户余额里的bug 用类、接口、继承与组合建立清晰的对象边界,理解Kotlin的默认final、运行时多态、构造顺序和可见性规则。 入门 4分钟 · 来自面向对象编程 kt 测验 新题 对于String? 类型的value,关于value.let与value?.let的哪项说法正确? 用接收者与返回值两个维度选择Kotlin的let、run、with、apply和also,并避开空值、嵌套接收者与链式返回陷阱。 进阶 1分钟 · 来自作用域函数 kt 预测输出 新题 接收者存在但let块返回null时,lookup("known") 会输出什么? 用接收者与返回值两个维度选择Kotlin的let、run、with、apply和also,并避开空值、嵌套接收者与链式返回陷阱。 进阶 2分钟 · 来自作用域函数 kt 预测输出 新题 这个程序会输出什么? 用接收者与返回值两个维度选择Kotlin的let、run、with、apply和also,并避开空值、嵌套接收者与链式返回陷阱。 入门 2分钟 · 来自作用域函数 kt 审查AI代码 新题 审查生成的注册表 用接收者与返回值两个维度选择Kotlin的let、run、with、apply和also,并避开空值、嵌套接收者与链式返回陷阱。 高级 6分钟 · 来自作用域函数 kt 找出bug 新题 找出嵌套it接收者里的bug 用接收者与返回值两个维度选择Kotlin的let、run、with、apply和also,并避开空值、嵌套接收者与链式返回陷阱。 进阶 4分钟 · 来自作用域函数 kt 测验 新题 一个实现既是已知的Failure变体,又是已知的Retryable变体,最适合用哪种声明建模? 用受限继承层级表达有限状态,借助穷尽when在新增分支时获得编译器反馈,并分清密封类、密封接口与枚举的边界。 进阶 1分钟 · 来自密封类与密封接口 kt 测验 新题 在Kotlin 2.4.10中,密封类的直接子类可以声明在哪里? 用受限继承层级表达有限状态,借助穷尽when在新增分支时获得编译器反馈,并分清密封类、密封接口与枚举的边界。 进阶 1分钟 · 来自密封类与密封接口 kt 预测输出 新题 这段程序会输出什么? 用受限继承层级表达有限状态,借助穷尽when在新增分支时获得编译器反馈,并分清密封类、密封接口与枚举的边界。 入门 2分钟 · 来自密封类与密封接口 kt 预测输出 新题 这段程序会输出什么? 用受限继承层级表达有限状态,借助穷尽when在新增分支时获得编译器反馈,并分清密封类、密封接口与枚举的边界。 进阶 2分钟 · 来自密封类与密封接口 kt 审查AI代码 新题 审查生成的支付状态层级 用受限继承层级表达有限状态,借助穷尽when在新增分支时获得编译器反馈,并分清密封类、密封接口与枚举的边界。 高级 6分钟 · 来自密封类与密封接口 kt 找出bug 新题 找出配送状态标签里的bug 用受限继承层级表达有限状态,借助穷尽when在新增分支时获得编译器反馈,并分清密封类、密封接口与枚举的边界。 进阶 4分钟 · 来自密封类与密封接口