首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有“朋友”功能陪伴“受保护”?

是否有“朋友”功能陪伴“受保护”?
EN

Stack Overflow用户
提问于 2022-07-06 12:27:08
回答 1查看 28关注 0票数 0

我使用Dart注释@protected,因为我希望将成员限制为仅从单个其他类调用,如下所示

代码语言:javascript
复制
class Foo {
  @projected
  void doSomethingSpecial() {}
}

class Bar {
  final foo = Foo();
  consumeDoSomethingSpecial() {
    foo.doSomethingSpecial();
  }
}

可以理解的是,foo.doSomethingSpecial()触发了警告

代码语言:javascript
复制
    The member 'doSomethingSpecial' can only be used within instance members of subclasses...

在C++世界中,我会将Bar注释为Foo的friend,以允许这个调用,但我并没有看到Dart中的相应注释?

我确实看到了我可以通过添加

代码语言:javascript
复制
// ignore: the_appropriate_lint_rule

但我没有看到适用于使用@protected注释的林特规则?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-06 14:52:23

Dart中的“朋友”本质上是通过确保标识符是“库-本地”(以下划线开头)来实现的,并且所有朋友都在同一个库中。Dart中的库通常只是一个文件;但是,使用部分/部分,它可以跨多个文件。

对下划线前缀标识符的任何引用都在同一库的作用域内,但在任何其他地方都不在范围内,即使您导入了该文件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72883559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档