跳到主要内容

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