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

向TextView追加文本时使用+=运算符报错,问题原因是什么?

问题原因解析

第二段代码报错的核心原因是TextView的text属性是可空类型(CharSequence?),而Kotlin没有为可空的CharSequence定义+=运算符。

具体来说:

  • txt.text += xxx 在Kotlin中等价于 txt.text = txt.text + xxx,但由于txt.text可能为null,直接对CharSequence?类型执行+运算会触发编译错误——Kotlin不支持可空CharSequence与其他字符串/CharSequence的直接拼接运算。
  • 而append是TextView的内置方法,它内部已经处理了当前文本为null的情况:如果当前text是null,append会直接把传入的文本设为TextView的内容;如果已有文本,则在内部缓冲区直接追加,不会触发类型或空指针相关的错误。

额外补充:就算txt.text不为null,+=的方式也会先把现有文本转成新的字符串对象再赋值,会触发TextView重新绘制,效率远不如直接操作内部缓冲区的append方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:14:59