3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

静的型付けと動的型付け、型推論

Last updated at Posted at 2024-01-27

はじめに

学校の授業でPHPを習った際、「PHPは動的型付けだから、型は指定しなくていいですよ〜」と教わりました。気になったので深く調べたところ、動的型付け、静的型付け、型推論など色々と混在していしまいました。そこで、図にしてみたところ、やっと理解できたので記録しておきます。同じような疑問を持つ方の助けになればと思います。

静的型付け・動的型付け・型推論 について

プログラミング言語には多種多様な特性があり、その中の一つに「型の扱い方」が挙げられます。以下の図のようにして静的型付けと動的型付けに分けられます。

image.png

静的型付け言語 (C言語, TypeScript, Swift ...)

コンパイルまでの段階で型が定義・検証される言語を静的型付け言語と言います。静的型付け言語では、コンパイル時に型のチェックが行われ、型の不一致があればエラーとなります。このため、実行前に多くのエラーを発見できるといった利点があります。

例:C言語では、変数を使用する前にその型を指定する必要があります。( int number; など )

~型推論~

静的型付けのうち、プログラマが型を明示的に宣言しなくてもコンパイラが自動で変数の型を推測する機能を型推論といいます。型推論によりコードが簡潔になり、型を手動で管理する手間が減少しますが、プログラマが意図した型と異なる型が推論される可能性もあります。

例:SwiftやTypeScriptではlet number = 5;のように変数を宣言するだけで、コンパイラが自動的にnumberintであると判断します。

動的型付け言語(Python, Ruby ...)

変数の型をプログラムの実行時に検証・決定する言語を動的型付け言語といいます。静的型付けと違い、コンパイル時ではなく、実際にプログラムが動作する際に型の安全性をチェックします。動的型付け言語では、型を事前に定義する必要がなく、より柔軟なプログラミングが可能ですが、実行時に型のエラーが発生するリスクもあります。

最後に

自分がよく使うFlutterやSwift, C言語は静的型付けであることがわかりました。これから AIを勉強するのにPythonを勉強し始めますが、これまで触ってきた言語とは違い、動的型付け言語であるということに注意してコーディングしていこうと思います。

3
1
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?