第119篇 扩展属性与扩展伴生:工具方法的进阶形态
扩展函数前面讲过(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编程助手skills机制详解:安装配置与开发实战指南

AI编程助手skills机制详解:安装配置与开发实战指南

1. 从"skills"这个热词说起:它到底在解决什么问题最近一段时间,不管是在开发者社区还是各类技术讨论群里,"skills"这个词出现的频率高得离谱。很多人第一次看到它,会下意识以为是某种新的编程语言特性&#x…

2026/10/9 0:05:53 阅读更多 →
AI编码助手能力扩展指南:skills、plugin与agents实战解析

AI编码助手能力扩展指南:skills、plugin与agents实战解析

1. 从“skills”这个热词说起:它到底在解决什么问题最近半年,不管是在技术群还是各种开发者社区,“skills”这个词出现的频率高得离谱。你随便翻翻热搜词列表就能看到:skills、claude code、codex、plugin、agents、find skills、…

2026/10/9 0:05:53 阅读更多 →
从自然语言到参数化CAD:text-to-cad技术路径与实操避坑指南

从自然语言到参数化CAD:text-to-cad技术路径与实操避坑指南

最近圈子里一直在聊 text-to-cad,我原本以为又是那种“演示视频很酷、落地全是坑”的概念,但自己花了大半个月把主流几条路径都跑了一遍之后,说实话,这条链路现在已经比想象中成熟得多。你给模型一句“一块 404010 的板&#xff0…

2026/10/9 0:05:53 阅读更多 →

最新新闻

C# WinForm药品管理系统实战部署指南

C# WinForm药品管理系统实战部署指南

简介:这是一套基于C# WinForm框架与SQL Server数据库开发的医院药品管理系统源码,面向计算机专业本科生课程设计、毕业设计及医疗信息化初学者,解决医院场景下药品入库出库、申领审核、库存预警、用户与病人信息管理等核心业务数字化需求。资…

2026/10/9 0:42:30 阅读更多 →
Orca 开源 ADE 实战:并行 AI 代理管理与调度指南

Orca 开源 ADE 实战:并行 AI 代理管理与调度指南

1. 从"一个窗口切到吐"说起:Orca 想解决的到底是什么问题如果你最近半年在折腾 AI 代理(AI Agent)相关的开发,大概率经历过这样一个阶段:一开始只用一个对话窗口,感觉挺爽;后来任务变…

2026/10/9 0:42:30 阅读更多 →
DeepSeek Harness桌面端实战:从内网部署到Skill工作流与插件配置

DeepSeek Harness桌面端实战:从内网部署到Skill工作流与插件配置

刚看到 DeepSeek Harness 出桌面端的消息时,我第一反应是“终于来了”。之前折腾这个工具,多半是在命令行里敲命令、改 YAML、翻日志,虽然可玩性很高,但对不熟悉终端的同事来说门槛还是有点高。这次桌面端一出来,我立刻…

2026/10/9 0:41:29 阅读更多 →
LLM工程师能力自检清单:8个工程实战问题

LLM工程师能力自检清单:8个工程实战问题

1. 这不是“八股文”,是LLM工程师能力的体检报告最近帮三家公司做过技术面试官,也带过十几届校招实习生,发现一个特别扎心的现象:90%的候选人一听到“LLM面试题”就本能地翻文档、背定义,张口就是“Transformer由Encod…

2026/10/9 0:41:29 阅读更多 →
RGV有轨穿梭车详解:原理、选型、调试与典型应用场景

RGV有轨穿梭车详解:原理、选型、调试与典型应用场景

如果你在物流仓储或智能制造行业待过,肯定对RGV这三个字母不陌生。仓库里沿着轨道来回跑的穿梭小车,产线上给工位送料的有轨运输车,很多都是RGV。但真正能把RGV讲清楚、用明白的人,其实不多。它不像AGV那样自带“高智商”光环&…

2026/10/9 0:40:28 阅读更多 →
text-to-cad 实战:自然语言生成参数化CAD模型的工作流与避坑指南

text-to-cad 实战:自然语言生成参数化CAD模型的工作流与避坑指南

先把话放在前面:text-to-cad 目前做不到你念一句“给我一个完美的机械臂”,它就真给你吐出全套可加工的装配体。但论“把一段话变成一块能编辑、能出图、能拿去加工的 CAD 模型”,它已经能从论文实验室搬到普通人的桌面上了。这一年我断断续续…

2026/10/9 0:40:28 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 13:34:55 阅读更多 →