Разница между операторами Unicode и ASCII

Я обнаружил, что операторы Unicode и ASCII иногда работают по-разному при интерполяции кавычек.

Учти это:

$ 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

и это:

$ 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:

$ 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

Это баг или есть объяснение, которого я не вижу?

Мне кажется, это ошибка.

Elizabeth Mattijsen 08.04.2019 11:18

Кроме того, в настоящее время мы называем их операторами «Unicode» и «ASCII», если не ошибаюсь.

Elizabeth Mattijsen 08.04.2019 11:49

Спасибо @ElizabethMattijsen: s/UTF-8/Unicode/

Fernando Santagata 08.04.2019 17:02

Проблема Rakduo для этого вопроса: 2825

LuVa 09.04.2019 22:40
Включение UTF-8 в jsPDF с помощью Angular
Включение UTF-8 в jsPDF с помощью Angular
Привет, разработчики, я предполагаю, что вы уже знаете, как экспортировать pdf через jsPDF. Если ответ отрицательный, то вы можете ознакомиться с моей...
10
4
216
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется, исправлено с совершить 2835 от MasterDuke17:

  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 '»'
  }

Другие вопросы по теме