一尘不染

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

flutter

关于Flutter教程,我遇到了下划线_

我知道在Java中,_它用作私有变量的命名约定。

  1. 它也适用于Flutter吗?注意Flutter中没有公共/受保护的。
  2. 请问_真的是私有的(不可访问,其他类),或者是它只是一个命名约定?

变量

 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);
  ...
}
  1. 是否_也将Widget设为私有?在这种情况下,主类不会无法评估Widget吗?

小部件

Widget _buildRow(WordPair pair) {
  final bool alreadySaved = _saved.contains(pair);  // Add this line.
  ...
}

阅读 1007

收藏
2020-08-13

共1个答案

一尘不染

只是一个命名约定。下划线字段,类和方法仅在.dart定义它们的文件中可用。

通常State将小部件的实现设为私有,以便只能由相应的小部件实例化StatefulWidget

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

class _MyPageState extends State<MyPage> {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}
2020-08-13