如何在最后写出具有重要空白的多行字符串

时间:2018-05-15 06:47:59

标签: swift4

我正在将先前连接的字符串转换为Swift 4中引入的新multi-line string syntax。它在行尾包含有意义的空格,所以我使用string newline escaping显式终止该行在重要的空格之后使用\n\来保护它免受从行末端剥去空白的编辑器(Xcode)的影响。

let asciiArt = """
 \ /   \n\
  V    \
"""

问题在于最后一行,我不希望换行符成为字符串的一部分,但不能只使用一个\,因为它给了我错误:

Escaped newline at the last line is not allowed

如何编写多行字符串,其中包含最后不包含换行符的重要尾随空格?

1 个答案:

答案 0 :(得分:0)

原来错误归因于quirks in Swift parsing grammar,Swift 4.0和4.1中的解决方法是在末尾插入额外的换行符,以使编译器满意:

let asciiArt = """
 \ /   \n\
  V    \

"""

注意结束"""之前的空行!

摘要:要编写以重要空格结尾且不包含尾随换行符的多行字符串,请插入另外一行换行符在末尾。编译器在开始"""之后,在结束"""之前以及每一行尾随\之后删除换行符,这将留下您:

  • 以空格结尾但没有\n
  • 的字符串
  • 内容编译器和
  • 一个问题,为什么人们像机器人那样遵循制造规则ad-absurdum ...♂️♂️