在Kotlin 我怎么能预选CharString

e.g.

fun main(args: Array<String>) {
  val char = 'H'
  val string = "ello World"
  val appendingWorks = string + char //but not what I want...
  //val prependingFails = char + string //no .plus(str:String) version
  val prependingWorkaround1 = char.toString() + string
  val prependingWorkaround2 = "" + char + string
  val prependingWorkaround3 = String(charArray(char)) + string

}

当试图在Char上调用+(例如plus)时,没有版本接受右边的字符串,因此'H' + "ello World"不会编译

The first workaround might be good enough but it's a regression for me from what works in Java: String test = 'H' + "ello World"; (compiles fine...)

我也不喜欢最后的解决方法,至少在java.lang.String中,我有一个接受单个字符的构造函数,或者我可以使用java.lang.Character.toString(char c).Kotlin 有没有一种优雅的方式可以做到这一点?

之前是否讨论过这个问题(向Char对象添加plus(str:String)重载?)

推荐答案

使用字符串模板怎么样,如下所示:

val prepended = "$char$string"

Kotlin相关问答推荐

Jetpack Compose中的数字 Select 器问题

解决Microronaut中多个可能的Bean候选者冲突

Kotlin异步不并行运行任务

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

为什么 Kotlin main 函数需要 @JVMStatic 注解?

kotlin 模式匹配如何像 scala 一样工作

Kotlin 协程:flatMapLatest 什么都不发出

Kotlin 接口类型参数

Kotlin:我可以将函数分配给 main 的伴随对象中的变量吗?

Kotlin 函数有 2 个参数用于对 Map 或 List 进行排序

每个 Kotlin 版本的默认 Kotlin 语言版本是什么?

Kotlin 编译器在构造函数中报告未使用的表达式,以便构建器采用 vararg lambda

如何将字符串格式化为电话号码kotlin算法

错误:cannot find symbol import com.gourav.news.databinding.ActivityDetailBindingImpl;

Kotlin 类的调用方法

TextField maxLength - Android Jetpack Compose

requireNotNull vs sure !! 操作符

Jetpack Compose State:修改类属性

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

在 gradle android library kotlin 项目中禁用 META-INF/* 生成