加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl6 – Perl 6:反式(%h)vs反式(%h .keys =>%h.值)

发布时间:2020-12-16 06:21:24 所属栏目:大数据 来源:网络整理
导读:另一个关于哈希作为反转论证的问题.在下面的代码中,简单地使用hash会得到不正确的结果,但是用键和值替换它会使其正确.怎么了? my @alph1 = a+ b+ c+ d+ e+ f+;my @alph2 = A_ B_ C_ D_ E_ F_;my %h;%h{ @alph1 } = @alph2;my $str = 'a+bc de+f';my $text =
另一个关于哈希作为反转论证的问题.在下面的代码中,简单地使用hash会得到不正确的结果,但是用键和值替换它会使其正确.怎么了?

my @alph1 = <a+ b+ c+ d+ e+ f+>;
my @alph2 = <A_ B_ C_ D_ E_ F_>;
my %h;
%h{ @alph1 } = @alph2;

my $str = 'a+bc de+f';

my $text = $str.trans(%h);
say $text;    # A_BC DE_F (incorrect)

$text = $str.trans(%h.keys => %h.values);
say $text;    # A_bc dE_f (correct)

解决方法

我想你误解了.trans的作用.您可以指定要更改为其他字符的字符范围.您没有指定要更改为其他字符串的字符串.

所以答案A_BC DE_F是正确答案,因为a被A代替,被_代替,b代替B,c代替C等.

也许我们应该引入一个.subst的版本,它采用哈希的匹配和替换.同时,您可能必须创建一个循环,该循环遍历散列的键/值并使用它调用.subst. (https://docs.perl6.org/routine/subst)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读