9

Немного песни:

Какой тип, а главное почему String будет x?!

val x = null + null
Kromster
  • 13,809
Morozov
  • 2,756

2 Answers2

3

Вы наткнулись на довольную забавную функцию из стандартной библиотеки Kotlin. Вот ее сигнатура:

public operator fun String?.plus(other: Any?): String

Левый аргумент может принимать все строки плюс null, а правый — вообще любые значения Kotlin, включая null.

Поэтому ваш фрагмент кода аналогичен такой записи:

val s: String? = null
val x: String = s + null
1

Проверить можно вот так:

fun main() {
    val x = null + null
    println(x::class.simpleName)
}

Вывод:

String
kotleni
  • 730