Есть ли в Perl 6 метод байтового массива Python? - PullRequest
0 голосов
/ 24 июня 2018

Я не могу найти метод bytearray или аналогичный в Perl 6 doc , как в Python.В Python bytearray определяется следующим образом:

class bytearray([source[, encoding[, errors]]])

Возвращает новый массив байтов.Класс bytearray - это изменяемая последовательность целых чисел в диапазоне 0 <= x <256. Он имеет большинство обычных методов изменяемых последовательностей, описанных в Mutable Sequence Types, а также большинство методов, которые имеет тип str, см. String Methods. </p>

Должен ли Perl 6 предоставлять этот метод или какой-то модуль?

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Брайан Д. Фой ответ по существу правильно.Вы можете в значительной степени перевести этот код в Perl6

 my $frame = Buf.new; 
 $frame.append(0xA2); 
 $frame.append(0x01); 
 say $frame; # OUTPUT: «Buf:0x<a2 01>␤»

Однако объявление не то же самое:

bu = bytearray( 'þor', encoding='utf8',errors='replace')

в Python будет эквивалентно этому вPerl 6

my $bú =  Buf.new('þor'.encode('utf-8')); 
say $bú; # OUTPUT: «Buf:0x<c3 be 6f 72>␤» 

И чтобы использовать что-то эквивалентное преобразованию ошибок, подход отличается от подхода Perl 6 к нормализации Unicode;вам, вероятно, придется использовать кодировку UTF8 Clean 8.

Однако для большинства случаев, я думаю, Buf, как указано Брайаном Д. Фой, является правильным.

0 голосов
/ 24 июня 2018

Я думаю, что вы ищете Buf - изменяемая последовательность (обычно без знака) целых чисел. Открытие файла с :bin возвращает Buf.

...