Kotlin编译器是否使用

java.lang.String.format("Hello, %s!", name)

or is there some other mechanism?

举个例子,如果我有这样一门课:

class Client {
  val firstName: String
  val lastName: String
  val fullName: String
    get() = "$firstName $lastName"
}

Will this getter return a cached string or will it try to build a new string? Should I use lazyOf delegate instead?

我知道除非有数以百万计的fullName次呼叫,否则不会有性能问题,但除了如何使用它之外,我还没有找到有关此功能的文档.

推荐答案

Kotlin编译器将此代码转换为:

new StringBuilder().append("Hello, ").append(name).append("!").toString()

不执行缓存:每次计算包含字符串模板的表达式时,将再次生成生成的字符串.

Kotlin相关问答推荐

这些Kotlin函数等效吗?

Microronaut Data 4和JDbi

try 一次性插入多条记录时,JOOQ连接为空错误

垂直滚动条下拉菜单的桌面组合

Kotlin SIZE_BYTES

判断 Kotlin 变量是否为函数

Kotlin 列表扩展功能

通过顺序多米诺骨牌操作列表管理对象的最佳方法是什么?

如何从 kotlin 中的数据类访问 val?

Kotlin:泛型、反射以及类型 T 和 T:Any 之间的区别

在协程中等待侦听器内的数据

如何使 TextInputEditText 只读?

为什么 Dialog 没有 NavController [Missing]?

如何在Spring Boot应用程序上启用承载身份验证?

什么是开放式property?为什么我不能将其设置器设为private私有?

未找到导入 kotlinx.coroutines.flow.*

Kotlin 的 Double.toInt() 中使用了哪种方法,舍入还是截断?

TornadoFX 中设置 PrimaryStage 或 Scene 属性的方法

生成Kotlin类图

在 intelliJ 元素中集成 Kotlinx 协程