Vec and 数组
Vec<u8>
, Vec<i8>
, ...
在 Dart 中,当你想表达一个长字节数组,例如大图片或一些二进制 blob,通常会使用 Uint8List
而不是
List<int>
,因为前者的性能更好。
flutter_rust_bridge
也为你考虑到了这一点。当你使用到 Vec<u8>
(或
Vec<i8>
,Vec<i32>
,等)时,它们会被翻译成 Uint8List
或其它类似的结构。
Vec<T>
当你使用 Vec<T>
,并且 T 是 u8
、i8
等以外的类型时,它会被转换成正常的 List<T>
。
[T; N]
由于 Dart 没有对静态大小的数组进行特殊处理,所以它也会被转换为 List<T>
。
例子
pub fn draw_tree(tree: Vec<TreeNode>) -> Vec<u8> { ... }
转换为:
Future<Uint8List> drawTree({required List<TreeNode> tree});
注意:如果你对 Future
感兴趣,请看 这里.