如何在Raku中创建多行字符串?附JavaScript(ES6)实现示例
Raku 中实现多行字符串的几种方式
对应 JavaScript 的模板字面量,Raku 有多种方式创建多行字符串,常用的几种如下:
1. 直接使用多行引号字符串
和 JS 类似,你可以直接在双引号或单引号中编写多行内容:
- 双引号(支持变量插值):
my $html = " <div> <p>Raku is <b>fun</b>.</p> </div> ";
- 单引号(纯字符串,不做变量插值):
my $html = ' <div> <p>Raku is <b>fun</b>.</p> </div> ';
2. Heredoc 语法(推荐用于复杂多行文本)
Raku 的 heredoc 语法用 :to(标签) 实现,能更好地控制文本格式,同时支持变量插值,和 JS 模板字面量的使用场景高度匹配:
my $html = qq:to/END_HTML/; <div> <p>Raku is <b>fun</b>.</p> <p>当前版本:$*RAKU.version</p> </div> END_HTML
- 若不需要变量插值,可替换为
q:to/标签/; - 标签可自定义,只要首尾一致即可,结尾的标签必须单独占一行,不能有缩进。
3. 引号构造器的多行写法
Raku 的 qq(等价双引号)、q(等价单引号)构造器也支持多行写法:
my $html = qq{ <div> <p>Raku is <b>fun</b>.</p> </div> };
如果需要自动去除每行前导空白,还可以添加 :trim 或 :squish 修饰符:
my $html = qq:trim:to/END_HTML/; <div> <p>Raku is <b>fun</b>.</p> </div> END_HTML # 输出的字符串会自动移除每行前导的空白字符
内容的提问来源于stack exchange,提问作者uzluisf
相关产品推荐
相关产品推荐

