繁体   English   中英

Perl 6是否具有与Python的bytearray方法等效的功能?

[英]Does Perl 6 have an equivalent to Python's bytearray method?

我在Raku doc中找不到像在Python中那样的bytearray方法或类似方法。 在Python中, 字节数组定义为:

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

返回一个新的字节数组。 bytearray类是一个可变的整数序列,范围为0 <= x <256。它具有可变序列类型中介绍的大多数可变序列的常用方法,以及str类型具有的大多数方法,请参见字符串方法。 。

Raku是否应提供此方法或某些模块?

我认为您正在寻找Buf-一个可变的(通常是无符号的)整数序列。 使用:bin打开文件将返回Buf

brian d foy的回答基本上是正确的。 您几乎可以将此代码转换为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编码。

但是,对于大多数用途,我认为由brian d foy表示的Buf是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM