Dart 的私有成员被暴露

Dart's private members being exposed

我不确定是不是出了什么问题,或者我是否漏掉了一些非常基础的东西。 但是我能够在 class.

之外访问 class 的私有构造函数、方法和成员
class A {
  static final _a = 1;
}

void main() {
  print(A._a);
}

输出:

1

飞镖版本:

Dart VM version: 2.8.4 (stable) (Unknown timestamp) on "linux_x64"

测试截图:

来自文档:

identifiers that start with an underscore (_) are visible only inside the library. Every Dart app is a library, even if it doesn’t use a library directive.

私有意味着它在写入它的文件中可用,其他文件无法访问。所以这不是真正的私人。您可以阅读更多相关信息 here