当前位置: 首页 > news >正文

kotlin学习,val使用get()的问题

疑问:定义val怎么还能使用get()

代码示例:

private val nametype:Int

get()=Business.carInfo?.let{carSc(it)}?:LType.AS

回答:Kotlin 允许为属性定义自定义 getter,每次访问属性时会执行该方法

疑问:这里引出另一个不解,为什么使用val,却可以更改赋值?

虽然 val 被称为 “只读” 或 “不可变”,但它的具体含义需要结合上下文理解:

val 的本质

  • val ≠ 常量:val 保证的是引用不可变(类似 Java 的 final 变量),但对象内容可以变

这种写法的意义?

适用于需要动态计算但不希望外部修改的场景(如缓存、懒加载)。

若需要真正的常量(编译时确定且不可变),使用 const val

加深理解代码示例

http://www.dtcms.com/a/270725.html

相关文章:

  • mysql 安装实战
  • Claude Code 开发使用技巧
  • User手机上如何抓取界面的布局uiautomatorviewer
  • Linux的`if test`和`if [ ]中括号`的取反语法比较 笔记250709
  • Unity Demo-3DFarm详解-其二
  • 以太坊智能合约核心技术解析与应用实践
  • LLaMA-Omni 深度解析:打开通往无缝人机语音交互的大门
  • HCIP 认证可以做什么?如何选择合适的职业路径?
  • C++11 future、promise实现原理
  • AI生成交互式数据图表
  • 【c++八股文】Day5:const和constexpr,define
  • sql查询davinci看板数据
  • 【一起来学AI大模型】PyTorch DataLoader 实战指南
  • 极简相册管理ios app Tech Support
  • ARM汇编编程(AArch64架构)课程 - 第7章:SIMD与浮点运算
  • 2025杰理蓝牙芯片:各系列芯片特点及市场分析
  • 【手写 new 操作符实现 - 深入理解 JavaScript 对象创建机制】
  • 【Linux】权限的概念及理解
  • VR/AR在HMI中的创新应用:远程协作与维修的沉浸式体验
  • 类和对象拓展——日期类
  • 【实习篇】之Http头部字段之Disposition介绍
  • 使用 Docker 搭建 Rust Web 应用开发环境——AI教你学Docker
  • VR重现红军过雪山:一场穿越时空的精神洗礼​
  • MySQL 09 普通索引和唯一索引
  • MySQL 间隙锁
  • pytorch 自动微分
  • 半导体晶圆检测的基本知识
  • EGARCH
  • Linux C 目录流基本操作
  • Alloy VS Promtail:基于 Loki 的日志采集架构对比与选型指南