🤔

Flutterにおける void main() とは何か

2021/09/06に公開

Flutterにおける void main() についてのプログラミングノート

何も返ってこないと分かっているから、voidを使う

本稿、あるいは本シリーズはFlutterの公式ドキュメントを参考に根本的な意味の理解が甘い箇所を調べ、自分なりの言葉で整理していく「Flutter プログラミングノート」です。

今回は「void」と「main()」について。

voidとは戻り値がないと分かっている場合に使うデータ型である。そもそも、voidとは日本語で「穴、空所、欠けている」などの意味がある。

漠然と、戻り値がないものにvoidを使えばいい、と理解することもできるだろう。しかし、プログラミングを始めたばかりの人間ならば、根本的な疑問が浮かんでくるのではないだろうか。

・そもそも、戻り値とは何か

・戻り値とは何のためにあるか

以下、参考となったウェブサイトの記述である。

関数などが処理を行った結果として呼び出し元に報告される値のことで、計算結果の数値や処理結果のデータなどが代表的だが、処理が正しく終了したかどうかを表す真偽値やコード番号、メッセージなどを返す場合もある。

IT用語辞典 戻り値 【return value】 返り値 / リターン値 https://e-words.jp/w/戻り値.html 2021/09/06に引用

関数は呼び出す時に引数を使って値を渡すことが出来ますが、関数内で何らかの処理をした結果として今度は関数から値を呼び出し元に返すことが出来ます。例えば数値計算をするような関数であれば計算結果を呼び出し元に返したり、文字列の処理をするような関数であれば処理した結果を返すことが出来ます。

Let's プログラミング 戻り値を使って関数から値を返す https://www.javadrive.jp/php/function/index4.html 2021/09/06に引用

返してもらった戻り値によって処理を分けたり、判断したりする場合に使えるようだ。つまり、少なくともFlutterにおいてはそのような用途ではない、単なる関数の呼び出しに使う場合に多く見られる。

その代表的なものが、void main()だろう。main()はFlutterで決められた最初に呼び出す関数である。例えば、 公式ドキュメントの「write your first app」ではvoid main()内では、statelessウィジェットとしてMyAppクラスを呼び出している。

その後、MyAppクラス内では様々なウィジェットが記述されているが、いずれもmain()に戻り値を返していない。そして、返す必要がない。このことから、void main()は最初にMyAppクラスを呼び出す目的目的で記述されているだけであり、それ以外の理由はないと見られる。

公式ドキュメントを読むとさらに複数の疑問が浮かんだ

以下、Flutter公式ドキュメントで確認された、初学者が引っ掛かりそうな用語リストである。解説が済んだら、それらにリンクを設定していく。

・Statelessウィジェトってなんだ

・createってなんだ

・@overrideってなんだ

・Statelessウィジェットってなんだ

Discussion