当前位置: 首页 > 知识库问答 >
问题:

变量名前的下划线“_”对Flutter意味着什么

须志新
2023-03-14

在参考Flutter教程时,我遇到了一个下划线_

    null
dart prettyprint-override">class RandomWordsState extends State<RandomWords> {
  final List<WordPair> _suggestions = <WordPair>[];
  final Set<WordPair> _saved = new Set<WordPair>();
  final TextStyle _biggerFont = const TextStyle(fontSize: 18.0);
  ...
}
Widget _buildRow(WordPair pair) {
  final bool alreadySaved = _saved.contains(pair);  // Add this line.
  ...
}

共有1个答案

蒋联
2023-03-14

这不仅仅是一个命名惯例。下划线字段、类和方法只能在定义它们的.dart文件中使用。

通常的做法是使小部件的state实现私有,以便它只能由相应的stateFulWidget实例化:

class MyPage extends StatefulWidget {
  @override
  _MyPageState createState() => _MyPageState();
}

class _MyPageState extends State<MyPage> {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}
 类似资料:
  • 问题内容: 在下面的示例测试中,原始提供程序名称为APIEndpointProvider,但是对于注入和服务实例化,惯例似乎是必须使用下划线将其注入。这是为什么? 我缺少更好的解释的约定是什么? 问题答案: 下划线是一种方便的技巧,我们可以使用它来以其他名称注入服务,以便我们可以在本地分配与该服务同名的局部变量。 也就是说,如果我们无法做到这一点,就必须在本地使用其他名称来表示服务: 在试验中使用

  • 问题内容: 可以解释一下在Python中使用对象名称前加下划线的含义吗?另外,说明单首和双首下划线之间的区别。无论所讨论的对象是变量,函数,方法等,该含义是否保持不变? 问题答案: 单下划线 类中带有下划线的名称仅是为了向其他程序员表明该属性或方法旨在私有。但是,名称本身并没有做任何特别的事情。 引用PEP-8: :“内部使用”指标较弱。例如,不导入名称以下划线开头的对象。 双下划线(名称改写)

  • 来自请求率和性能指南-Amazon Simple Storage Service: Amazon S3会自动扩展到高请求率。例如,您的应用程序可以在存储桶中的每个前缀每秒至少实现3,500个PUT/POST/DELETE和5,500个GET请求。存储桶中的前缀数量没有限制。以指数方式提高您的读取或写入性能很简单。例如,如果您在Amazon S3存储桶中创建10个前缀以并行化读取,您可以将读取性能扩

  • 我想创建一个

  • 我最近看到新的Gmail API宣布吹嘘OAuth 2.0用户身份验证。 我有点担心,因为在我们的企业Google Apps域中,我已经使用XOAUTH2与Gmail集成。(从本质上讲,XOAUTH2 包括对 IMAP 身份验证的 OAuth 2.0 支持)。 我应该担心吗? 新的Gmail API是否意味着XOAUTH2的终结开始?

  • 这里有多个任务。其中一个任务是。我们称之为。在任务-1中,我分配一个时间戳并生成水印,我使用,其中等于2min。 下一个操作符是我窗口数据,并在上面做一些聚合,然后下沉到Kafka。让我们将这个聚合和下沉的链接任务称为。 :查看这个度量值,它告诉。 问题:当我窗口元素时,我已经分配了0允许的迟到。所以它可能掉了一些元素。但是当我查看度量时,由于windows不是一个运算符,所以没有度量可以告诉wi