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

Kotlin中非空变量为何可与null值相加?运行会崩溃吗?

Kotlin字符串与null相加的疑问解答

问题1:非空String变量与可能为null的变量相加为何合法?

Kotlin里String类的plus运算符(对应+符号)的参数类型是Any?,它的定义如下:

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

这个方法允许接收任意类型的参数(包括可空类型),当右侧是null时,Kotlin会自动将其转换为字符串"null",而非触发空指针相关的编译错误,所以userData = userData + s(s可能为null)的写法在编译阶段完全合法。

问题2:userData = userData + null的执行结果是什么?会崩溃吗?

执行后userData的值会变成"OKnull",App运行时不会崩溃。
因为String.plus(null)内部会把null处理成字符串字面量"null",再和原字符串拼接。比如初始userData是"OK",执行拼接操作后就会得到"OK" + "null" = "OKnull"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:44:55