我想做这样的事情:成绩单显示:'\ n'。如何?
Renne
问问题
3789 次
4 回答
11
使用以下内容:
Transcript cr
您可以通过级联在值之后使用它:
Transcript show: 123; cr
于 2009-05-19T09:05:49.537 回答
4
字符本身可以通过Character cr
. 所以,你也可以这样做:
Transcript show: 'Bla! , Character cr asString.
但是当然,
Transcript show: 'Bla!' ; cr.
更优雅。
于 2009-05-21T12:03:48.620 回答
4
根据我的(长期)经验,缺少字符转义是 Smalltalk 中缺少的少数内容之一。对于流媒体,使用 cr、tab 等的解决方案是可以的。
但是,如果您需要字符串中的特定控制字符,这可能很难看且难以阅读(使用“streamContents:”或“withCRs”添加新行)。或者,您可能希望使用一种(非标准)字符串扩展机制。例如,在 VisualWorks 或 Smalltalk/X 中,你可以这样写(如果我没记错的话):
'someString with newline<n>and<t>tabs' expandMacros
甚至对其他对象的 printStrings 进行类似 printf 的切片:
'anotherString<n><t>with newlines<n>and<t>tabs and<p>' expandMacrosWith:(Float pi)
我想,在 Squeak 和 V'Age 中也有类似的东西。
但是,请注意:这些扩展是在执行时完成的。因此,在许多字符串上大量使用它们时,您可能会遇到惩罚。
于 2011-05-11T07:38:25.680 回答
1
为了方便起见,我在 String 类中添加了一个方法“line”:
line
^self, String lf
然后你可以说obj showSomething: 'Hello world!' line.
或者称它为换行符、endl、lf 等...
于 2018-04-17T01:49:26.693 回答