negative_variable_dimension
可變長度陣列的可變維度必須是非負數。
描述
#分析器會在兩種情況下產生此診斷資訊。
第一種情況是,在 Array.variableWithVariableDimension 註解中給出的可變維度為負數時。可變維度是該註解的第一個引數。
第二種情況是,在 Array.variableMulti 註解中給出的可變維度為負數時。可變維度在該註解的 variableDimension 引數中指定。
有關 FFI 的更多資訊,請參閱使用 dart:ffi 進行 C 語言互操作。
示例
#以下程式碼會產生此診斷資訊,因為在 Array.variableWithVariableDimension 註解中提供了可變維度 -1
dart
import 'dart:ffi';
final class MyStruct extends Struct {
@Array.variableWithVariableDimension(-1)
external Array<Uint8> a0;
}以下程式碼會產生此診斷資訊,因為在 Array.variableMulti 註解中提供了可變維度 -1
dart
import 'dart:ffi';
final class MyStruct2 extends Struct {
@Array.variableMulti(variableDimension: -1, [1, 2])
external Array<Array<Array<Uint8>>> a0;
}常見修復方法
#將可變維度更改為零 (0) 或正數
dart
import 'dart:ffi';
final class MyStruct extends Struct {
@Array.variableWithVariableDimension(1)
external Array<Uint8> a0;
}將可變維度更改為零 (0) 或正數
dart
import 'dart:ffi';
final class MyStruct2 extends Struct {
@Array.variableMulti(variableDimension: 1, [1, 2])
external Array<Array<Array<Uint8>>> a0;
}