Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在Dart中将int投射到Uint8_Flutter_Dart_Dart Ffi - Fatal编程技术网

Flutter 在Dart中将int投射到Uint8

Flutter 在Dart中将int投射到Uint8,flutter,dart,dart-ffi,Flutter,Dart,Dart Ffi,我使用的是ffi和tyed_数据Dart库,这行代码一直出错 Uint8 START_OF_HEADER = 1 as Uint8; 我的错误: 类型“int”不是类型转换中类型“Uint8”的子类型 我做错了什么?另一件奇怪的事情是,我可以使用这些库编写这行代码,我的IDE将编译并不会抛出错误,直到您使用这行代码。我正在使用Intellij版本2019.2.4您正在尝试在Dart中创建Uint8的实例,但这是不可能的-该类型只是一个标记 /// [Uint8] is not constru

我使用的是
ffi
tyed_数据
Dart库,这行代码一直出错

 Uint8 START_OF_HEADER = 1 as Uint8;
我的错误:

类型“int”不是类型转换中类型“Uint8”的子类型


我做错了什么?另一件奇怪的事情是,我可以使用这些库编写这行代码,我的IDE将编译并不会抛出错误,直到您使用这行代码。我正在使用Intellij版本2019.2.4

您正在尝试在Dart中创建
Uint8
的实例,但这是不可能的-该类型只是一个标记

/// [Uint8] is not constructible in the Dart code and serves purely as marker in
/// type signatures.
例如,您将在typedefs中使用这些标记来描述一个C函数,它接受两个带符号的32位整数并返回带符号的32位整数:

typedef native_sum_func = Int32 Function(Int32 a, Int32 b);
这将与一个类似于省道的typedef配对

typedef NativeSum = int Function(int a, int b);
Dart ffi负责将
a
b
从Dart int转换为32位C int,并将返回值转换回Dart int

注意,您可以使用
package:ffi
中的
allocate
方法创建指向这些C类型的指针,例如
pointer