我使用Dart注释@protected,因为我希望将成员限制为仅从单个其他类调用,如下所示
class Foo {
@projected
void doSomethingSpecial() {}
}
class Bar {
final foo = Foo();
consumeDoSomethingSpecial() {
foo.doSomethingSpecial();
}
}可以理解的是,foo.doSomethingSpecial()触发了警告
The member 'doSomethingSpecial' can only be used within instance members of subclasses...在C++世界中,我会将Bar注释为Foo的friend,以允许这个调用,但我并没有看到Dart中的相应注释?
我确实看到了我可以通过添加
// ignore: the_appropriate_lint_rule但我没有看到适用于使用@protected注释的林特规则?
发布于 2022-07-06 14:52:23
Dart中的“朋友”本质上是通过确保标识符是“库-本地”(以下划线开头)来实现的,并且所有朋友都在同一个库中。Dart中的库通常只是一个文件;但是,使用部分/部分,它可以跨多个文件。
对下划线前缀标识符的任何引用都在同一库的作用域内,但在任何其他地方都不在范围内,即使您导入了该文件。
https://stackoverflow.com/questions/72883559
复制相似问题