You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Raku中使用TR///直接处理字符串生成新字符串?

如何直接使用TR///处理字符串并生成新字符串(无需绑定$_)

在Raku中,要直接用TR///处理字符串并生成新字符串,无需借助with绑定$_,可以通过以下两种简洁方式实现:

方法1:子例程方法调用语法(贴近TR///直观写法)

使用.&语法将TR作为字符串的方法调用,直接把目标字符串作为隐式处理对象,保留TR的副词和模式写法:

my $str = 'xABCz';
my $new_str = $str.&TR:c:d/ABC//;
say "-->$new_str<--";
# 输出: -->ABC<--

这里.&会将左侧的$str设为TR的处理目标(隐式绑定$_但无需显式写with),执行后直接返回处理后的新字符串。

方法2:显式参数传递(函数式写法)

TR本质是Raku内置子例程,可直接传递目标字符串、匹配模式、替换模式作为位置参数,搭配所需副词:

my $str = 'xABCz';
my $new_str = TR:c:d($str, 'ABC', '');
say "-->$new_str<--";
# 输出: -->ABC<--

这种写法完全显式传递参数,不依赖$_的绑定逻辑,更符合函数式编程风格。

两种方式都能达到你在Perl中使用tr/ABC//rcd的效果,直接生成处理后的新字符串。

内容的提问来源于stack exchange,提问作者7stud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 01:18:24