プログラミング 型推論
型推論
名前の通り型を推論することです。
例えば
float hoge = 1.0f;
hogeというfloat型の変数に1.0fという値を入れています。
ただこれ少し冗長に思いませんか?
1.0fはどう見てもfloat型です。
(末にfってついてるしね)
だったらわざわざ型を宣言しなくても中に入れる値で逆算できそうじゃないですか?
それが型推論です。
さっきのコードは型推論で書くと以下のようになります。
auto hoge = 1.0f;
hogeの前についてたものがfloatからautoに変わっただけです。
難しくないでしょう?
型推論は使うべきか
便利な型推論なんですが使うべきかどうかということで
結構意見が分かれます。
私が知っている範囲でメリット・デメリットをまとめてみます。
メリット
・コードの書き方がそろう
・明らかにわかるものをわざわざ書くのは無駄
・言語によっては速度が速くなる
デメリット
・パッと見で変数の型がわからない
私の意見
私はガンガン使うべきだと思います。
というのもデメリットよりメリットが多いと思っているからです。
まぁ上に上げた私が知っているメリットデメリットを見れば一目瞭然ですね。
もちろんコーディング規約だとかで使えない場合もあると思います。
ただ使えないわけでないなら使うべきだと思います。
何よりも書き方がそろうのがいいです。
毎回ローカル変数を定義する度に型を宣言していくのははっきり言ってめんどうです。
floatやint程度ならまだしもジェネリクスやテンプレートといったものを使った
長ったらしい型を逐一書かなくてはならないとか考えるだけで頭が痛いですw
パッと見で型がわからないって言っても今どきのIDEを使っているなら
マウスカーソル載せれば型出てきますし、問題になるようなことではないと思います。
じゃあfloatやintの時は普通に書いて長い型名の時だけ型推論使えばいいじゃないという意見もあります。
もちろんそれでもいいのですが、ケースバイケースで書き方が変わるのは後から見たとき見辛いと思います。