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

时间:2018-03-16 17:18:00

标签: string-formatting chapel

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

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

我想要与字符串类似的东西,但我没有在页面上看到一个例子。基本上,我希望字符串排成一列。

1 个答案:

答案 0 :(得分:2)

您的示例使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方法中包含引号,因此在使用带有通用格式说明符的字符串时会获得引号。