LoginSignup
0
0

動的型付言語(Python)と静的型付言語 (Java)の簡単な比較

Posted at

動的型付言語と静的型付言語の違いを、Pythonを動的型付言語の例に、Javaを静的型付言語の例にしてコードで比較。

動的型付言語 (Python)

# 変数の宣言時に型を指定する必要がない
x = 10
print(type(x))  # <class 'int'>

x = "Hello"
print(type(x))  # <class 'str'>

# 関数の引数や戻り値に型を指定する必要がない
def add(a, b):
    return a + b

print(add(1, 2))  # 3
print(add("Hello", "World"))  # HelloWorld

静的型付言語 (Java)

public class Main {
    public static void main(String[] args) {
        // 変数の宣言時に型を指定する必要がある
        int x = 10;
        System.out.println(x);  // 10
        
        // x = "Hello";  // コンパイルエラー: 型の不一致
        
        // 関数の引数や戻り値に型を指定する必要がある
        int result1 = add(1, 2);
        System.out.println(result1);  // 3
        
        // String result2 = add("Hello", "World");  // コンパイルエラー: 型の不一致
    }
    
    public static int add(int a, int b) {
        return a + b;
    }
}

動的型付言語では、変数の宣言時や関数の引数・戻り値に型を指定する必要がありません。実行時に変数の型が決定され、同じ変数に異なる型の値を代入することができます。

一方、静的型付言語では、変数の宣言時や関数の引数・戻り値に型を指定する必要があります。コンパイル時に型チェックが行われ、型の不一致によるエラーを事前に検出できます。

このように、動的型付言語は柔軟性が高く記述が簡潔になる一方、静的型付言語は型の安全性が高くコンパイル時にエラーを検出できるという特徴があります。

0
0
1

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
0
0