Sid*_*cks 0 static-variables dart flutter
如果我有一个静态变量(假设是 foo),其值从另一个静态变量继承,后来我更改了另一个静态变量的值,然后尝试访问 foo ,它仍然给出初始化时使用的旧值。
我有一个包含以下代码的文件endpoints.dart
class EndPoints {
static String baseUrl = "someurl.com/";
static String place = baseUrl + "api/v1/place";
}
Run Code Online (Sandbox Code Playgroud)
在这里,如果我更改任何其他文件中的baseUrl并像这样打印它
onPressed () {
print(EndPoints.place);
//prints someurl.com/api/v1/place
EndPoint.baseUrl = "changedurl.com/";
print("${EndPoints.baseUrl}");
//prints changedurl.com/
print("${EndPoints.place}");
//still prints someurl.com/api/v1/place
}
Run Code Online (Sandbox Code Playgroud)
我担心的是为什么static String place = baseUrl + "api/v1/place" 不采用更新后的baseUrl值。
静态成员place在改变时不会被重新计算baseUrl。您可以像这样定义自定义 getter 函数:
class EndPoints {
static String baseUrl = "someurl.com/";
static String get place => baseUrl + "api/v1/place";
}
Run Code Online (Sandbox Code Playgroud)
通过此更改,您的代码将输出place更新后的值。另外,您的代码中有一个拼写错误,EndPoint.baseUrl应该是EndPoints.baseUrl.
| 归档时间: |
|
| 查看次数: |
1732 次 |
| 最近记录: |