奇思妙想 · 2024年 4月 27日 0

多行字符串文本

67 次浏览

有些编程语言,又把这种多行字符串原样展示称为原生字符串。

  • C/ObjC/C++语言提供的多行字符串字面量表达方法稍显不友好。

char *lines =

"This is the first sentence."

"\n This is the second sentence."

"\n  This is the third sentence.";

如上会显示3行文本,后面的每行开头会额外多一个空格。

  • Python/Swift/Kotlin 提供了更加简洁的三引号模式:

lines = """

    This is the first sentence.

     This is the second sentence.

      This is the third sentence.

    """

lines输出的结果和C语言输出的类似,它不需要额外增加'\n'表示换行,就像是原文输出。

需特别注意,第二个三引号"""指示字符串文本左侧对齐位置,即,如果第二个三引号"""左移一个空格,那么上面三行文本是输出左侧都多一个空格。

  • 仓颉 也提供三引号模式,但特别要求第一组三引号后面一定需要换行。|
    另外,也提供了原始字符串模式:一个或多个#开头,一个双引号,后面紧跟着字符串,结尾是一个双引号和一个或多个#符号(#符号个数和开头的#个数一样)。例如:
    #"abc"#

    ###"
    abcd
    "###
  • Rust提供了原始字符串风格,一样可以可见即所得:
    let lines = r#"
    This is the first sentence.
     This is the second sentence.
      This is the third sentence."#;