如何在 Pharo 中用新行编写字符串文字
how to write string literal with new lines in Pharo
如何在 Pharo 9 中编写带有换行符的字符串文字?我尝试了以下但他们都没有插入新行:
a := 'paragraph1\n\nparagraph2'.
a := 'paragraph1\n\nparagraph2'.
我能看到的唯一方法是像这样通过连接:
a := 'paragraph' ,
(String with: Character cr with: Character cr),
'new paragraph' ,
(String with: Character cr with: Character cr)
有没有更简单(更短)的方法来做到这一点?
你只管做你的台词:
multiLineString := 'paragraph1
paragraph2
paragraph3'.
Pharo(与任何其他 Smalltalk AFAIK 一样)具有多行字符串,您不需要任何特殊符号,如 Python 或其他符号。
编辑:请注意,虽然 my 示例将是文字,但您的示例不会(那里将有 2 个文字,结果字符串将不是文字。
编辑 2:还有 String cr
.
编辑 3:它也可以用流构造:
myMultiLineString := String streamContents: [ :stream |
stream
nextPutAll: 'paragraph1'; cr;
nextPutAll: 'paragraph2'; cr ]
您可以在字符串中使用 <n>
占位符并向其发送 expandMacros
消息 - 这会将占位符扩展为平台行分隔符:
a := 'paragraph1<n>paragraph2' expandMacros.
expandMacros
及其变体也接受制表符、cr、lf 和参数的占位符。有关详细信息,请参阅 String>>expandMacrosWithArguments:
的评论。
如何在 Pharo 9 中编写带有换行符的字符串文字?我尝试了以下但他们都没有插入新行:
a := 'paragraph1\n\nparagraph2'.
a := 'paragraph1\n\nparagraph2'.
我能看到的唯一方法是像这样通过连接:
a := 'paragraph' ,
(String with: Character cr with: Character cr),
'new paragraph' ,
(String with: Character cr with: Character cr)
有没有更简单(更短)的方法来做到这一点?
你只管做你的台词:
multiLineString := 'paragraph1
paragraph2
paragraph3'.
Pharo(与任何其他 Smalltalk AFAIK 一样)具有多行字符串,您不需要任何特殊符号,如 Python 或其他符号。
编辑:请注意,虽然 my 示例将是文字,但您的示例不会(那里将有 2 个文字,结果字符串将不是文字。
编辑 2:还有 String cr
.
编辑 3:它也可以用流构造:
myMultiLineString := String streamContents: [ :stream |
stream
nextPutAll: 'paragraph1'; cr;
nextPutAll: 'paragraph2'; cr ]
您可以在字符串中使用 <n>
占位符并向其发送 expandMacros
消息 - 这会将占位符扩展为平台行分隔符:
a := 'paragraph1<n>paragraph2' expandMacros.
expandMacros
及其变体也接受制表符、cr、lf 和参数的占位符。有关详细信息,请参阅 String>>expandMacrosWithArguments:
的评论。