Dartの「dynamic」とは何か?また、その使用について解説します。
dynamicとは

「dynamic」は、どんな値でも代入できる型です。
このキーワドを指定した変数は、どんな型の値であっても代入することが出来ます。
//Int型の値を代入
dynamic dy = 1;
//String型の値を代入
dy = "あ";
たとえ、初期化時の値と違う型でも代入できます。
使用について

「dynamic」は、言ってしまえば「なんでも屋の型」で、とても便利な型に思えます。
ですが、使用は極力避け、本当に必要な時だけ使わなければいけません。
理由は、2つあります。
1つは、Dartの公式ガイドラインにそう記されているからです。
ガイドラインでは、「dynamic」の代わりに「var」を使用するように勧められています。
もう1つは、型本来の意味を失ってしまうからです。
そもそも何でもありの型なんてモノは、もはや型とは言えません。
まとめ
「dynamic」は、どんな型でも使える「何でも屋」です。
ですが、使用は避けるように勧められています。
本当に必要な時以外は、「var」を使うようにしましょう。
参考
Alberto Miola, Flutter Complete Reference.(書籍)
コメント