如何在 Pharo 中用新行编写字符串文字

cts*_*cts 3 smalltalk pharo

如何在 Pharo 9 中编写带有换行符的字符串文字?我尝试了以下操作,但他们都没有插入新行:

a := 'paragraph1\n\nparagraph2'.
a := 'paragraph1\\n\\nparagraph2'.
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是通过像这样的串联:

a := 'paragraph' , 
     (String with: Character cr with: Character cr),
     'new paragraph' , 
     (String with: Character cr with: Character cr)
Run Code Online (Sandbox Code Playgroud)

有没有更简单(更短)的方法来做到这一点?

Est*_*nLM 6

你只需做你的行:

multiLineString := 'paragraph1
paragraph2
paragraph3'.
Run Code Online (Sandbox Code Playgroud)

Pharo(和任何其他 Smalltalk AFAIK 一样)具有多行字符串,您不需要像 Python 或其他语言那样使用任何特殊符号。

编辑:请注意,虽然我的示例将是一个文字,但您的示例不会(那里将有 2 个文字,并且生成的字符串将不是文字。
编辑 2:还有String cr
编辑 3:它也可以用流构造:

myMultiLineString := String streamContents: [ :stream |
    stream 
        nextPutAll: 'paragraph1'; cr;
        nextPutAll: 'paragraph2'; cr ]
Run Code Online (Sandbox Code Playgroud)

  • 如果您需要与“String cr”不同的行结束符,请使用“String crlf”或“String lf”。 (2认同)