在 Kotlin 中如何进行换行(行续)?

31

我有一行很长的代码,我想把它分成多行。我应该使用什么,语法是什么?

比如,添加一堆字符串:

val text = "This " + "is " + "a " + "long " + "long " + "line"

3
对于换行,您可以使用\n - V-rund Puro-hit
2个回答

58

Kotlin中没有行连接符的符号。由于其语法允许在几乎所有符号之间添加空格,因此您只需将语句断开:

val text = "This " + "is " + "a " +
        "long " + "long " + "line"

但是,如果语句的第一行是有效的语句,它将不起作用

val text = "This " + "is " + "a "
        + "long " + "long " + "line" // syntax error

为避免在将长语句跨越多行时出现此类问题,您可以使用括号:

为避免将长语句跨越多行时出现问题,您可以使用括号:

val text = ("This " + "is " + "a "
        + "long " + "long " + "line") // no syntax error

了解更多信息,请参阅Kotlin语法


这似乎在返回语句中不起作用,例如return "a" + \n "b"只会返回a。 - Carson Holzheimer
我的错误,实际问题是 return a ?: "" + \n "b" 只会返回一个 a。 - Carson Holzheimer
我经常看到在句子是有效的情况下,在点运算符之前有换行符:let foo = obj <\n> . do()。有什么提示可以帮助我看出这在语法上是允许的吗? - Felix Dombek
找到了答案:https://dev59.com/bsXsa4cB1Zd3GeqPSR1v#73575948 - Felix Dombek

1

另一种方法是使用3个双引号""对,即按三次双引号键,就会得到类似于这样的结果。

val text = """
    
    This is a long 
    long
    long
    line
""".trimIndent()

使用这种方法,您不必使用+\n或转义任何内容;只需按Enter将字符串放在下一行。

trimIndent()用于格式化多行字符串 - 检测所有输入行的常见最小缩进,从每行中删除它,并且如果第一行和最后一行为空(注意空白与空),则还会删除它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接