Dart 如何切一块面包

Dart 如何切一块面包,dart,Dart,Dart和分别是Javascript和的非常直接的副本(但名称更加混乱!) 但是,似乎没有与ArrayBuffer.slice()等效的工具,它创建了ArrayBuffer的一部分的副本。我错过了吗?这是故意的还是只是遗漏?您可以复制ByteBuffer的一部分,尽管过程可能有点复杂: 您可以使用创建ByteBuffer的UINT8列表视图(即,不是副本)。从那里,您可以使用它的方法将它的一部分复制到新的Uint8List,然后访问它的属性以获取ByteBuffer 换言之: ByteBuffe

Dart和分别是Javascript和的非常直接的副本(但名称更加混乱!)


但是,似乎没有与
ArrayBuffer.slice()
等效的工具,它创建了
ArrayBuffer
的一部分的副本。我错过了吗?这是故意的还是只是遗漏?

您可以复制
ByteBuffer
的一部分,尽管过程可能有点复杂:

您可以使用创建
ByteBuffer
UINT8列表
视图(即,不是副本)。从那里,您可以使用它的方法将它的一部分复制到新的
Uint8List
,然后访问它的属性以获取
ByteBuffer

换言之:

ByteBuffer slice=Uint8List.view(ByteBuffer).sublist(start,end.buffer);
ByteBuffer
获取
UINT8列表
视图,然后创建副本的另一种方法:

ByteBuffer slice=Uint8List.fromList(ByteBuffer.asUint8List(start,end)).buffer;

在实践中,我认为这通常并不像看上去那么糟糕,因为通常情况下,您都是从
Uint8List
开始的。

您可以复制
ByteBuffer
的一部分,尽管过程可能有点复杂:

您可以使用创建
ByteBuffer
UINT8列表
视图(即,不是副本)。从那里,您可以使用它的方法将它的一部分复制到新的
Uint8List
,然后访问它的属性以获取
ByteBuffer

换言之:

ByteBuffer slice=Uint8List.view(ByteBuffer).sublist(start,end.buffer);
ByteBuffer
获取
UINT8列表
视图,然后创建副本的另一种方法:

ByteBuffer slice=Uint8List.fromList(ByteBuffer.asUint8List(start,end)).buffer;
在实践中,我认为这通常并不像看上去那么糟糕,因为通常情况下,您都会从
Uint8List
开始