戌咬音かんぬき(inugaminé)'s avatar

戌咬音かんぬき(inugaminé)

型 (Type) とは

型 = データの種類

変数と定数何を入れられるかを決めるルールのこと。

主な型

数値系

説明
Int整数42, -10, 0
Double小数 (高精度)3.14, 0.1
Float小数 (低精度)3.14

文字系

説明
String文字列"Hello", "Swift"
Character1文字"A", "あ"

論理系

説明
Bool真偽値true, false

型安全 (Type Safety)

Swift は型安全な言語である。 間違った型を使おうとすると、コンパイル時にエラーで教えてくれる仕組みのこと。

let age: Int = 30
let message: String = "こんにちは"

let result = age + message  // コンパイルエラー!
// 「整数と文字列は足せないよ」と教えてくれる

プログラムを実行する前にエラーが分かる!

型安全じゃない言語との比較

JavaScript (型安全じゃない):

let age = 30;
let message = "こんにちは";
let result = age + message;  // "30こんにちは" になる (エラーにならない)

→ 実行してみないと変な結果になってることに気づかない

Swift (型安全):

let age = 30
let message = "こんにちは"
let result = age + message  // コンパイル時点でエラー!

→ コードを書いてる段階でエラーが出る

メリット

  • バグが減る → 変な型の組み合わせを防げる
  • 安心できる → 実行前に問題が分かる
  • 意図が明確 → 「この変数は整数だ」と分かる

型推論 (Type Inference)

型を書かなくても、Swift が自動で判断してくれる機能。

let age = 30          // Swift が「これは Int だな」と推論
let name = "Ken"      // Swift が「これは String だな」と推論

コンパイラがコンパイル時に与えられた値を調べることで、式の型を自動で推論してくれる。

型推論は、特に初期値を伴って[[変数と定数|変数や定数]]を宣言するときに役立つ。
コードに直接出てくる 423.14 のようなリテラル値を代入する際によく機能する。

型注釈 (Type Annotation)

型推論に任せず、明示的に型を書くこともできる。

let age: Int = 30
let name: String = "Ken"
//      ^^^^^^^^ これが型注釈

いつ型注釈を使う?

  • 初期値がないとき (型推論できない)
var score: Int  // 後で値を入れる
  • 型を明確にしたいとき
let pi: Double = 3  // Int ではなく Double にしたい
  • コードの意図を明確にしたいとき
let userID: String = "12345"  // 数字だけど文字列として扱う

型安全と型推論の関係

型安全と型推論は両立する

  • 型安全: 全ての値と場所に型があり、不一致はエラーになる
  • 型推論: 型を明示しなくても Swift が自動で判断する

Swift は型推論のおかげで、C 言語や Objective-C のような言語と比べて型を宣言する必要が少ない。
しかし全ての定数と変数には型があり、型チェックは常に行われる。

まとめ

概念意味
データの種類
型安全型の間違いをコンパイル時にチェック
型推論値から自動で型を判断
型注釈明示的に型を指定