You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin创建对象时,应使用val还是var?

何时在创建类实例时用val或var

核心原则很简单:看你是否需要让这个变量后续指向另一个不同的类实例。

用val的场景

如果这个变量从创建到生命周期结束,始终只指向这一个对象,不会被重新赋值为其他对象(哪怕对象内部的属性可以被修改),就用val:

// 示例:创建一个User实例,后续不会让user变量指向其他User对象
val user = User("Alice", 25)
// 即使修改user内部的属性,val依然合法
user.age = 26

常见场景:

  • 大部分业务中的固定实例,比如配置对象、单例实例、一次创建后不再替换的业务实体
  • 函数内的局部对象,不需要重新赋值的情况

用var的场景

如果后续需要让这个变量指向另一个不同的实例,就用var:

// 示例:需要切换不同的配置实例
var config = DefaultConfig()
// 后续替换为测试配置
config = TestConfig()

常见场景:

  • 需要动态切换实例的情况,比如环境切换、状态切换
  • 某些需要重新初始化的对象,比如重新加载的用户会话

关键误区提醒

别把变量引用的可变性和对象内部属性的可变性搞混:

  • val修饰的变量,只是不能改它指向的对象,但对象本身的属性如果是var,依然可以修改
  • var修饰的变量,只是允许它指向不同的对象,不代表对象内部属性一定可变

内容的提问来源于stack exchange,提问作者Sahran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:45:55