variable_length_array_not_last
可变长度的 'Array' 只能作为 Struct 的最后一个字段出现。
描述
#当可变长度的内联 Array
不是 Struct
的最后一个成员时,分析器会产生此诊断信息。
有关 FFI 的更多信息,请参阅 使用 dart:ffi 进行 C 互操作。
示例
#以下代码会产生此诊断信息,因为字段 a0
的类型包含三个嵌套数组,但在 Array
注释中只给定了两个维度
dart
import 'dart:ffi';
final class C extends Struct {
@Array.variable()
external Array<Uint8> a0;
@Uint8()
external int a1;
}
常见修复
#将可变长度的内联 Array
移至 struct 的最后一个字段。
dart
import 'dart:ffi';
final class C extends Struct {
@Uint8()
external int a1;
@Array.variable()
external Array<Uint8> a0;
}
如果内联数组具有固定大小,请使用该大小进行注释
dart
import 'dart:ffi';
final class C extends Struct {
@Array(10)
external Array<Uint8> a0;
@Uint8()
external int a1;
}