データ型
変数が保持できる値の種類と、その値に対して実行できる操作を指定する分類。
データ型は、変数に格納できるデータの性質と、そのデータに対して許可される操作を定義します。型は適切なデータ処理を保証します。
プリミティブ型:
- 整数 (Integer): 整数 (int, long)
- 浮動小数点 (Float/Double): 小数
- ブーリアン (Boolean): 真/偽
- 文字 (Char): 単一の文字/記号
- 文字列 (String): 文字の並び
複合型:
- 配列 (Array): 同じ型の要素の集合
- オブジェクト (Object): ユーザー定義の構造
- 構造体 (Struct): 名前付きフィールドのグループ
型システム:
- 静的型付け: コンパイル時にチェック (Java, C++)
- 動的型付け: 実行時にチェック (Python, JavaScript)
- 強い型付け: 厳密な型ルール
- 弱い型付け: 自動的な型変換
graph LR
Center["データ型"]:::main
Rel_boolean["boolean"]:::related -.-> Center
click Rel_boolean "/terms/boolean"
Rel_data_modeling["data-modeling"]:::related -.-> Center
click Rel_data_modeling "/terms/data-modeling"
Rel_data_structure["data-structure"]:::related -.-> Center
click Rel_data_structure "/terms/data-structure"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5歳でもわかるように説明
データ型は、さまざまな容器のようなものです。貯金箱はコイン(数字)を入れ、本棚は本(テキスト)を入れ、信号機は赤/緑(ブーリアン)を示します。それぞれの容器は、その中身のために作られています!
🤓 Expert Deep Dive
Hindley-Milner型推論は、注釈なしで静的型付けを可能にします。代数的データ型(和/積タイプ)は表現力豊かなモデリングを可能にします。依存型(Idris, Agda)は制約を型にエンコードします。漸進的型付け(TypeScript)は静的と動的を橋渡しします。型消去(Type erasure)は実行時に型を削除します(Javaジェネリクス)。