静的型付けと動的型付けの違い

静的型付けと動的型付けの違いです。

目次

説明 静的型付け
  動的型付け
参考 静的型付け言語のC#の型推論

静的型付け

  • 変数を宣言する時やメソッドの引数や戻り値を指定するときにデータ型を指定します。
  • データ型は、コンパイル実行時等のプログラムを実行する前に決定されます。
  • 決定されたデータ型の変数には、そのデータ型の値を代入します。
    →文字列型を宣言した変数には、文字列型の値を代入します。
    →データ型の使用方法が間違っていた場合、コンパイルエラーで教えてくれます。メリットです。
  • プログラム言語のJavaやC#は、静的型付け言語と呼ばれます。

Java

Javaのコードのサンプルです。

package test1;

public class Test1 {
	public static void main(String[] args) {

		String test1 = "あいうえお";
		System.out.println(test1); // あいうえお

		//test1 = 12345;  // コンパイルエラー
		System.out.println(test1); // 
	}
 }

6行目は、変数のデータ型はStringと宣言して値を代入しています。
9行目のように、数値型の値を変数に代入しようとするとコンパイルエラーになります。
→プログラム実行前にチェックされています。

動的型付け

  • 変数のデータ型はプログラム実行時前に決定されません。
  • 変数に文字列型の値を代入後、数値型の値を代入できます。
  • プログラム言語のJavaScriptやPythonは、動的型付け言語と呼ばれます。

JavaScript

JavaScriptのコードのサンプルです。

<script>

	var test1 = "あいうえお"
	console.log(test1); // あいうえお

	test1 = 12345
	console.log(test1); // 12345
	
</script>

3行目は、変数のデータ型は宣言されていません。変数に文字列型の値を代入しています。
6行目は、文字列型として使用した変数に、数値型の値を代入しています。
Javaとは異なりエラーにならず、実行できます。

静的型付け言語のC#の型推論

  • 静的型付け言語のC#には、型推論の機能があります。
  • 変数宣言時にデータ型を明示しなくても自動でデータ型を推定して決定してくれます。
  • 決定されたデータ型の変数には、そのデータ型の値を代入します。
    →文字列型を宣言した変数には、文字列型の値を代入します。
    →データ型の使用方法が間違っていた場合、コンパイルエラーで教えてくれます。
  • varキーワードを使用します。varは、variableの略で変数という意味です。
    →var=型推論ではありません。

C#

C#の 型推論のサンプルです。

using System;

class Test1
{
	static void Main()
	{
		var test1 = "あいうえお";
		Console.WriteLine(test1); // あいうえお

		//test1 = 12345;  // コンパイルエラー
		Console.WriteLine(test1);
	}
}

7行目は、変数のデータ型は宣言されていません。文字列型の値を変数に代入しています。
10行目のように、数値型の値を変数に代入しようとするとコンパイルエラーになります。
→変数のデータ型は文字列型になっています。

以下は、Wikipediaの動的型付けのリンクです。
https://ja.wikipedia.org/wiki/%E5%8B%95%E7%9A%84%E5%9E%8B%E4%BB%98%E3%81%91

関連の記事

UnicodeとUTF-16とUTF-8の違い(秀丸で文字コードを確認)

△上に戻る