静的型付け(Static Typing)

PR
PR

静的型付け(Static Typing)とは、変数や関数が扱うデータの種類を、プログラムを動かす前の段階で決めて確かめる方式のことです。動かしてから確かめる「動的型付け」と対になる考え方です。

現実世界に例えると、静的型付けは荷物を送る前に、箱の大きさと中身を伝票で照合しておく仕組みのようなものです。手間はかかりますが、届いてから「入らない」と分かる事故を防げます。

動的型付けとの違い

項目 静的型付け 動的型付け
確かめる時期 動かす前 動かしている最中
誤りの発覚 早い 遅い
書く手間 やや多い 少ない
代表的な言語 Java、C#、TypeScript Python、JavaScript

型とは何か

前提を押さえておきましょう。型とは「これは整数」「これは文字列」といったデータの種類のことです。数値どうしなら足し算ができますが、文字列と数値を足そうとすれば意味が定まりません。型はこうした取り違えを防ぐための区分です。

いちばんの利点は早期発見

実務での価値はここに集約されます。型の食い違いは、動かす前の検査で機械的に見つかります。試験を通り抜けて本番で初めて発覚する、という事態を減らせます。規模が大きく、長く使うシステムほど、この差は効いてきます。

入力補助が効く

見落とされがちですが大きな利点です。種類が決まっているため、開発用のソフトが「この変数に対して使える操作」を正確に示せます。候補が自動で出て、綴りの誤りも減ります。書く速さは、むしろこちらのほうが上になることもあります。

書く量が増える

短所も明らかです。いちいち種類を書き添える必要があり、短いプログラムでは煩わしく感じます。試しに動かしてみたいだけの場面では、この手間が足かせになります。近年はこれを和らげる工夫が進んでいます。

型推論で書く量を減らす

その工夫がこれです。与えた値から種類を機械が推し量ってくれる仕組みで、書かなくても静的な検査は効きます。安全性を保ったまま、動的型付けに近い書き心地が得られるため、近年の言語ではほぼ標準の機能になっています。

大人数の開発ほど効いてくる

規模が大きくなるほど価値が増します。他人が書いた関数を使うとき、何を渡せばよく何が返るのかが、中身を読まなくても分かります。人の出入りがある現場や、何年も手を入れ続けるシステムでは、この「読まなくても分かる」ことが効いてきます。

後から足すこともできる

柔軟な進め方もあります。もともと動的だった言語に、型を書ける仕組みを後から加えたものがあります。JavaScriptに対するTypeScript、Pythonの型注釈がその例です。既存のプログラムを一度に書き換えず、少しずつ移せます。

あわせて知っておきたい用語

  • 型推論:
    書かなくても種類を機械が推し量る仕組みです。
  • TypeScript:
    JavaScriptに静的な型付けを加えた言語です。
  • コンパイル:
    実行できる形へ翻訳する作業です。
  • デバッグ:
    プログラムの誤りを見つけて直す作業です。

コメント

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