Dart 没有为 class 定义方法 'setRng'

Dart The method 'setRng' isn't defined for the class

我做了一个 class,但不确定为什么我的 getter 没问题,但 setter 显示为 not defined in flutter。

class Test {
  int range = 1000;

  set setRng(int val) => range = val;

  get getRng => range;
}

Test.getRng 没有错误..

Test.setRng(100) 抛出错误 The method 'setRng' isn't defined for the class 'Test'

显然它们都已定义..?

在 Dart 中,您可以使用 setter = value; 调用 setter。所以你的代码可以这样修改:

test.setRng = 0;

Getter 和 setter 使成员函数看起来像成员变量。按照惯例,它们可以有类似名称的变量,例如:

class Test {
  int _range = 1000;

  set range(int val) => _range = val; // optionally perform validation, etc

  int get range => _range;
}

现在使用时看起来更自然:

test.range = 123; // using the setter
print(test.range); // using the getter