我无法使用模板在一个字符串中获取两个字符串值

问题描述

我得到了一些函数

    private fun selectHometown() = File("data/towns.txt")
    .readText()
    .split("\n")
    .shuffled()
    .first()

如果我尝试使用从该函数获得的 2 个值来获取或打印一些字符串,第一个值就会消失。例如:

println("${selectHometown() ${selectHometown() }")

只会打印一个城市名称,而我希望打印两个。我猜这个问题与 Kotlin 中的字符串连接有关。当然,我可以用不同的方式得到想要的结果,但我想知道为什么这个方法不起作用。

解决方法

Windows 终止行的方式是使用“\r\n”,因此将其用作分隔符:

private fun selectHometown() = File("data/towns.txt")
.readText()
.split("\r\n")
.shuffled()
.first()

println("${selectHometown()} ${selectHometown()}")