flutter - Dart 没有为类定义方法“setRng”
问题描述
我上了一个课,不知道为什么我的 getter 很好,但是 setter 显示为在颤振中没有定义。
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;
. 所以你的代码可以这样修改:
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
推荐阅读
- python - ValueError:检查目标时出错:预期 conv2d_3 的形状为 (1,58,58),但得到的数组的形状为 (1,64,64)
- arrays - 转换字符串数组
- visual-studio-code - 在 HTML 文件中的 Javascript 上放置 Visual Studio Code 断点
- vue.js - 在 Vue.js 中传递对象的属性
- vba - 更新后使用连续(子)表格将记录保持在屏幕上的相同位置
- javascript - 我可以仅通过使用异步来“承诺”一个功能吗?
- python - Correctly changing the values of an adjacency matrix to represent an undirect graph
- python - 在 Python 中对 Cython 对象进行空间高效的酸洗?
- python - 如何使用python将文件从一台PC发送到另一个IP地址到其中的特定路径?
- sql-server - 有效地从 SQL 表中选择每 n 行,其中 n 不是整数