首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
第119篇 扩展属性与扩展伴生:工具方法的进阶形态
📅 2026/10/9 0:06:35
✍️ 爱科研究院
👁 阅读 3,247
扩展函数前面讲过(070 篇),这一节讲它的"孪生兄弟"——扩展属性,以及一个更冷门但很能区分基本功的话题:扩展伴生对象。这两个话题面试里问得不多,但一旦问了,能答上来的候选人很少,因为它触及"Kotlin 编译期到底做了什么"这一层。先把结论放在前面:扩展属性没有 backing field。它本质上是一个方法,每次访问都调用一次 getter;var形式的扩展属性则对应 getter + setter 一对方法。所以扩展属性不能保存状态,每次读都是一次计算——这是它与普通属性的根本差别。扩展伴生对象则是给"某个类的伴生对象"补扩展方法,语法上写作val Klass.CompanionName.func() {},用来给别人的类加静态方法而不用改动原类。机制背后的执行路径扩展属性的本质,看一段代码就清楚:class User(val name: String) // 扩展属性:只有访问器,没有字段 val User.displayName: String get() = "用户:$name" // 编译后是一个静态方法 displayName(User) // var 形式:一对访问器 var User.tag: String get() = storage.get(this) ?: "" set(value) { storage.put(this, value) }
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/9 0:06:35
AI编程助手skills机制详解:安装配置与开发实战指南
2026/10/9 0:06:35
AI编码助手能力扩展指南:skills、plugin与agents实战解析
2026/10/9 0:06:35
从自然语言到参数化CAD:text-to-cad技术路径与实操避坑指南
2026/10/9 0:51:39
Claude Opus 5.5 实战:CLAUDE.md 配置、Sub-agent 拆分与 effort 调优
2026/10/9 0:51:39
2026降AI率工具红黑榜:降AI率网站怎么选?
2026/10/9 0:51:39
移除前缀使数组严格递增:由最后一个坏点决定答案
2026/10/9 0:51:39
光通信互联市场重构:数据中心光纤跳线选型与供应模式解析
2026/10/9 0:51:39
工业视觉选型指南:主流全局曝光高速摄像头路线多维对比
2026/10/9 0:46:39
2026汉中景区古建牌坊检测排名 TOP5 CMA 资质机构提供牌坊裂缝检测、牌坊倾斜检测、老化检测 联系方式推荐
2026/10/9 0:01:35
RISC-V裸机启动全流程:从复位向量到main函数的七步实现
2026/10/9 0:01:35
Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南
2026/10/9 0:01:35
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错
2026/10/8 5:02:14
Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化
2026/10/7 9:55:49
多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系
2026/10/7 14:02:03
hindsight:面向LLM应用的事后可观测性工程实践
2026/10/8 4:30:43
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/8 2:46:15
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/8 4:32:33
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)