首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unicode运算符与ASCII运算符的区别

Unicode运算符与ASCII运算符的区别
EN

Stack Overflow用户
提问于 2019-04-08 17:03:29
回答 1查看 216关注 0票数 10

我发现在引用插值时,Unicode和ASCII运算符的工作方式有时不同。

请考虑以下内容:

代码语言:javascript
复制
$ perl6 -e'my $a = BagHash.new: <a a a a b b b c c c c c d>;for $a.keys -> $k { say "$k => $a<<$k>>" }'

d => 1
b => 3
c => 5
a => 4

还有这个:

代码语言:javascript
复制
$ perl6 -e'my $a = BagHash.new: <a a a a b b b c c c c c d>;for $a.keys -> $k { say "$k => $a«$k»" }'

c => c(5) a(4) b(3) d«c»
a => c(5) a(4) b(3) d«a»
b => c(5) a(4) b(3) d«b»
d => c(5) a(4) b(3) d«d»

但即使在使用Unicode运算符时也可以:

代码语言:javascript
复制
$ perl6 -e'my $a = BagHash.new: <a a a a b b b c c c c c d>;for $a.keys -> $k { say "$k => {$a«$k»}" }'
d => 1
b => 3
a => 4
c => 5

这是一个bug,还是有一个我看不见的解释?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-11 13:12:24

似乎是用来自MasterDuke17的commit 2835修复的:

代码语言:javascript
复制
  sub bracket_ending($matches) {
      my $check     := $matches[+$matches - 1];
      my str $str   := $check.Str;
      my $last  := nqp::substr($str, nqp::chars($check) - 1, 1);
-     $last eq ')' || $last eq '}' || $last eq ']' || $last eq '>'
+     $last eq ')' || $last eq '}' || $last eq ']' || $last eq '>' || $last eq '»'
  }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55569744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档