跳到主要內容

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