Flutterにてアンダーバー(_)の正体を突き止めることに成功した

Flutter
 

はじめに

変なタイトルですみません。

アンダーバーの正体

結論から言うと、

変数名につけることで、その変数がプライペート変数であることを明示させるものです。

Unlike Java, Dart doesn’t have the keywords public, protected, and private. If an identifier starts with an underscore (_), it’s private to its library. For details, see Libraries and visibility.Identifiers can start with a letter or underscore (_), followed by any combination of those characters plus digits.

上記にも書いてありますが、JavaでいうPrivate制約をつけることとも言っています。

使用例

class _RandomWordsState extends State<RandomWords> {
final _suggestions = <WordPair>[];
...

原則として変数は最小限のスコープ(グローバル、プライベートなど)を持つべきです。

例として書かれたコードのうちsuggestions変数がこのクラス内でしか使われないのであれば

それはプライペートの範囲で変数が宣言されるべきです。

それを宣言したものがアンダーバーをつけた「_suggestions」という書き方であるわけです。

最後に

新言語取得は今までの常識から逸脱されたものが出てくるとびっくりしてしまいます。笑

コメント

タイトルとURLをコピーしました