web-dev-qa-db-ja.com

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 _buildRow(WordPair pair) {
  final bool alreadySaved = _saved.contains(pair);  // Add this line.
  ...
}
18
lonelearner

それは単なる命名規則ではありません。アンダースコアフィールド、クラス、およびメソッドは、.Dartファイルが定義されている場所。

ウィジェットのState実装をプライベートにすることは一般的な慣行であり、対応するStatefulWidgetによってのみインスタンス化できます。

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

class _MyPageState extends State<MyPage> {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}
18
boformer

ダーツガイド

Javaとは異なり、Dartにはキーワードpublic、protected、およびprivateがありません。識別子がアンダースコア(_)で始まる場合、その識別子はプライベートです。詳細については、「 ライブラリと可視性 」を参照してください。

19
TheMri