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;
}