kotlin
文章平均质量分 92
我是唐青枫
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
别再把 Util 类堆成杂物间:Kotlin Extension 扩展函数与扩展属性实战详解
Kotlin Extension 简明指南 Kotlin Extension 允许为现有类添加新方法而不修改其源代码,本质上仍是静态函数但调用方式更自然。关键特性包括: 语法结构:fun 接收者类型.扩展函数(),如 String.isEmail() 本质原理:编译后转为普通静态函数,接收者作为首个参数 典型应用: 封装类型相关的工具方法(如字符串处理、日期格式化) 简化业务逻辑(如订单状态展示) 为可空类型提供兜底操作 优势: 代码组织更符合直觉 支持泛型扩展(如集合工具方法) 可空接收者处理更优雅 注意原创 2026-07-10 07:59:48 · 216 阅读 · 0 评论 -
Kotlin 运算符重载详解:为什么 a += b 有时改对象,有时换对象?
本文介绍了Kotlin的运算符重载机制,通过固定运算符与特定函数名的映射关系,让自定义类支持运算符操作。文章首先展示了运算符重载的基本原理,指出像+、in等运算符实际上对应着plus()、contains()等成员函数。然后通过一个二维坐标点Point类的示例,演示如何通过实现operator fun plus()来支持+运算。文中还列出了常用运算符的映射表,包括一元运算符、算术运算、区间判断、索引访问等,并强调了运算符重载不能改变运算优先级。最后以金融场景的Money类为例,展示了金额计算如何通过重载运算原创 2026-07-03 14:29:32 · 205 阅读 · 0 评论 -
别再把 inline 当性能开关:Kotlin 内联、noinline、crossinline 与 reified 实战详解
Kotlin 的 inline 关键字专为高阶函数设计,核心作用是在编译期展开函数体和 Lambda 代码。它不仅减少函数调用开销,更关键的是改变 Lambda 的行为:支持非局部返回与 reified 泛型。内联适合短小高频调用的流程封装(如标准库函数),但需避免滥用——大函数或非必要场景会导致代码膨胀。典型应用包括统一日志/耗时处理模板,以及利用非局部返回简化循环控制。合理使用 inline 能提升性能与编码体验,但需权衡代码体积与维护成本。原创 2026-07-01 09:47:44 · 154 阅读 · 0 评论 -
Kotlin Context Parameters 详解:别再把 Logger、事务和配置层层往下传
Kotlin Context Parameters 是一种编译期隐式参数机制,旨在减少多层函数调用中重复传递的"环境参数"(如Logger、配置、数据库事务等)。它通过context声明函数所需的上下文对象,调用时编译器自动匹配当前作用域中的对应实例,无需手动传递。从Kotlin 2.4.0开始稳定支持,可显著简化代码结构,同时保持类型安全——缺少上下文时会直接编译报错。典型应用场景包括日志、配置、数据库等跨层级共享对象,使业务函数只关注核心参数,提升代码可读性。调用时可使用context{...}块或wi原创 2026-06-22 11:21:31 · 243 阅读 · 0 评论 -
Kotlin with 详解:把已有对象放进作用域集中处理
Kotlin 的 with 函数是一个作用域函数,用于在指定对象的作用域内执行代码块并返回结果。摘要如下: 功能定位:with 接受一个对象作为参数,在该对象的作用域中执行 Lambda 表达式,并返回最后一行的结果。 典型场景:适合对已有对象进行连续属性访问/方法调用(如生成报表、格式化文本等)。 源码特点:非扩展函数,通过 receiver.block() 实现对象作用域内的代码执行。 与 run 的区别:功能相似,但调用方式不同(with(obj) vs obj.run),且 with 不支持可空对象原创 2026-06-15 09:55:29 · 242 阅读 · 0 评论 -
Kotlin run 详解:把对象操作收进作用域,再把结果带出来
Kotlin 的 run 是一个作用域函数,它有两种形式:作为对象扩展函数和顶层函数。作为扩展函数时,run 在对象作用域内执行代码并返回最后一行结果,适合连续访问对象属性或计算结果。顶层 run 则用于创建临时作用域或收拢中间变量。与 let 和 apply 相比,run 使用 this 作为上下文对象,适合需要频繁访问对象成员的场景。它还支持空安全调用,并能配合链式操作将中间结果转换为最终输出。原创 2026-06-12 07:38:43 · 173 阅读 · 0 评论 -
Kotlin also 详解:附加操作、链式调试与实战示例
Kotlin 的 also 是标准库中的一种作用域函数,主要用于执行附加操作而不改变原对象。它接收一个 Lambda 表达式,将当前对象作为参数(it)传入,执行操作后返回原对象。常见用途包括日志记录、调试、校验和埋点等。与 apply 不同,also 使用 it 引用对象,适合链式调用中插入中间操作。例如,在集合处理或对象初始化时,可用 also 打印中间结果或验证数据,而 apply 更适合直接配置对象属性。also 能与安全调用符 ?. 结合处理可空对象,也支持修改可变对象的状态。原创 2026-06-05 13:51:35 · 247 阅读 · 0 评论 -
Kotlin apply 详解:对象初始化、链式配置与实战示例
Kotlin 的 apply 函数是一个作用域函数,主要用于对象初始化和属性配置。它会在对象自己的作用域内执行一段代码,最后返回对象本身。apply 的特点包括:1)通过 this 直接访问对象成员;2)适合集中配置多个属性;3)支持链式调用;4)可与 also 配合使用。常见应用场景包括对象初始化、集合配置和链式操作,但不适合需要返回值转换的情况,因为 apply 始终返回原始对象。原创 2026-06-04 09:27:12 · 292 阅读 · 0 评论 -
Kotlin let 详解:空安全、链式转换与实战示例
Kotlin中的let是一个常用的作用域函数,主要用于处理可空对象、临时变量和链式转换。它接收一个Lambda表达式,将调用对象作为参数传递,并返回Lambda的最后一行结果。let常与安全调用符?.结合使用,实现空安全操作。其源码结构简洁,通过block(this)将当前对象传递给Lambda。典型应用场景包括:空安全处理(配合?.和Elvis操作符)、作用域隔离、链式转换(如字符串处理)、与takeIf结合进行条件判断等。相比普通if判空,let更适合在非空时执行多步操作的情况,但简单判空逻辑仍推荐使用原创 2026-05-31 17:34:18 · 415 阅读 · 0 评论 -
Kotlin Lambda 表达式详解:从基础语法到实战封装
Kotlin Lambda 表达式是一种匿名函数,可以赋值给变量或作为参数传递。基本语法为 { 参数 -> 函数体 },最后一行自动作为返回值。Lambda 具有类型,如 (Int, Int) -> Int。当只有一个参数时可用 it 简化,多个参数可用 _ 忽略不用的参数。支持尾随 Lambda 语法,可将 Lambda 移到括号外。Lambda 能访问外部变量形成闭包,也可作为函数返回值实现策略模式。与匿名函数 fun(){} 类似,但语法更简洁。Lambda 的核心价值在于将行为作为数据传递,广泛应用原创 2026-05-28 13:52:39 · 252 阅读 · 0 评论 -
Kotlin 高阶函数别只会 map:从 Lambda 到实战封装
Kotlin高阶函数简明指南 Kotlin高阶函数是指以函数作为参数或返回值的函数,它能将变化逻辑抽离,使代码更灵活。核心要点包括: 函数类型:用(参数类型)->返回值类型表示,如(Int)->Unit Lambda表达式:通过{参数->函数体}定义匿名函数,支持it简写和参数外置等语法糖 集合操作:filter过滤、map转换、groupBy分组等常用高阶函数 函数引用:使用::操作符引用现有函数 返回函数:函数可以作为返回值,实现策略模式 典型应用场景包括集合处理、回调封装、DSL构建等。高阶函数配合L原创 2026-05-26 11:08:33 · 366 阅读 · 0 评论
分享