首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >kotlin字符串连接没有副作用

kotlin字符串连接没有副作用
EN

Stack Overflow用户
提问于 2021-04-05 22:28:23
回答 2查看 66关注 0票数 0

为什么字符串连接没有副作用?

代码语言:javascript
复制
fun main() {
    var s1 = "abc"
    val s2 = "def"
    s1.plus(s2)
    println(s1)
    // s1 = s1.plus(s2)
    // println(s1)
}

我期望的是abcdef,但只得到了abc。注释代码运行良好,但看起来有点笨拙。

EN

回答 2

Stack Overflow用户

发布于 2021-04-05 22:35:30

plus()方法(或+操作符,在kotlin中基本上是相同的)返回连接的字符串。所以通过调用

代码语言:javascript
复制
s1.plus(s2)
//or
s1 + s2

您连接了这些字符串,但您丢弃了结果。

票数 3
EN

Stack Overflow用户

发布于 2021-04-05 23:40:37

如下面的answer所示。您的加号操作返回独立于给定字符串的连接字符串。这是因为字符串在Kotlin中是不可变的。另一种方法是使用CharLists或buffers。

请注意,不变性有一些重要的好处。在不可变的情况下,提供对不可变对象的引用是没有问题的,因为没有人可以更改该对象。您需要更改模型中的引用以保存新值。这样可以很大程度上保证模型的一致性和完整性。另请注意,不可变对象因此是threadsafe。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66954617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档