如何格式化 Chapel 中的字符串输出?

How do I format strings output in Chapel?

当我用 Chapel 的 Formatted I/O 打印数字时,我可以设置数字的长度,例如

writeln("my number is %{#.###}", 3.14159)

我想要与字符串类似的东西,但我在页面上没有看到示例。基本上,我希望字符串在漂亮的列中排列。

您的示例混淆了 writelnwritef。要在 writeln 中使用格式化 IO,您需要调用 .format() 方法。下面是一个演示字符串格式说明符 (%s) 和通用格式说明符 (%t) 的示例。这些列在您在问题中链接的页面上。

config var someString = 'ben';

// String format specifier
writeln('%s is great'.format(someString));
writef('%s is awesome\n', someString);


// Generic format specifier invokes the readThis / writeThis of the object
writeln('%t is awesome x%t'.format(someString, 2));

输出:

ben is great
ben is awesome
"ben" is awesome x2

请注意,字符串对象在其 writeThis 方法中包含引号,因此在使用带有通用格式说明符的字符串时会得到引号。