簡単でわかりやすい!動的型付けと型推論の違いとは?タイミング?どちらが便利?プログラマーがわかりやすく解説
ライター/woinary
某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。数多くのプログラミング言語を経験。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさん。
タイミングが違う?動的型付けと型推論とは
image by iStockphoto
例えばコンピュータゲームのキャラクターには名前やHPといったパラメーターがありますよね。プログラムでデータをしまっておくための仕組みが変数です。多くの場合、名前は英語や日本語の文字の並びで、HPは数値ですよね。このように変数にも扱うデータの種類があります。それが変数の型です。
動的型付けと型推論の違いをざっくり説明すると、この型がいつ決まるかになります。この違いを説明するためには、まずは変数とは何か、型とは何かが重要。動的や静的は何が違うのか、推論はどうするのかを説明します。
動的型付け:決まるのは実行時
まず動的型付けの説明から。変数には種類=型があります。その型を決めることが「型付け」です。その型付け=型が決まるタイミングが動的か静的かの違いで「動的型付け」と「静的型付け」に分かれます。
ではそもそも動的や静的とはなんでしょう。ざっくり言えば事前に決まっているものが「静的(スタティック)」で、動かす時に決まるのが「動的(ダイナミック)」です。例えるならば、外出する際に、どこへどうやって行くかを事前に計画を立てておくのが静的、その時の気分でぶらぶらと回るのが動的と考えてください。
型推論:決まるのはプログラムを書いた時
では静的型付け=型推論なのでしょうか。そういう説明もありますが、実はちょっと違います。旅行でいえばあらかじめ計画を立てるのが静的。例えば、バスツアーでどこかの店や施設に立ち寄る際、いちいちそこで何をしてくださいとは書いていませんよね。土産物屋に行けば土産を買うでしょうし、次の目的地まで時間がかかるようならトイレを済ませます。
プログラミングでも、静的型付けの場合は変数の型を事前に決めておきます。ただ、その変数にしまうデータの種類があらかじめわかる場合、いちいち書いているとめんどうです。ですから、わかりきっている場合には種類を書いておかなくても、コンピューターがおそらくこの型だろうということを決めてくれるのが「型推論」になります。
型って何?変数と型について
image by iStockphoto
データをしまう場所が変数、その種類が型です。しかし、わざわざ種類を気にする必要があるのでしょうか。実は型という考え方がないものもあります。その典型的なものが機械語。コンピューターが理解できるのは機械語だけ。ただ人間にはわかりにくいので、わかりやすい形でプログラムを表すのがプログラミング言語です。そのため、多くのプログラミング言語に型があります。つまり、型はとても重要なものということです。
まずは、変数とそこにしまうデータの種類である型の説明から始めます。
\次のページで「変数は途中経過を書き出すメモ」を解説!/