カテゴリ: Swift 更新日: 2025/10/23

Swiftのプロパティを完全ガイド!stored・computed・lazyの違いと使い分けを初心者向けに解説

Swift プロパティの種類と使い分け(stored, computed, lazy)
Swift プロパティの種類と使い分け(stored, computed, lazy)

先生と生徒の会話形式で理解しよう

生徒

「Swiftでよく見るプロパティって、storedとかcomputedとかあってよく分かりません…」

先生

「プロパティはデータを管理するためのものだけど、種類によって使い方が変わるんですよ。基本から順番に覚えていきましょう!」

生徒

「お願いします!できれば簡単な例もつけて教えてほしいです。」

先生

「もちろんです!Swiftのプロパティの種類と特徴を、やさしく丁寧に説明していきますね。」

1. Swiftのプロパティとは?

1. Swiftのプロパティとは?
1. Swiftのプロパティとは?

Swift(スウィフト)におけるプロパティとは、「変数」や「定数」のようなもので、クラスや構造体の中でデータを保存しておく仕組みのことです。

たとえば、人の名前や年齢を保存しておくnameageなどがプロパティにあたります。

Swiftには3つの代表的なプロパティがあります:

  • Stored Property(保存プロパティ)
  • Computed Property(計算プロパティ)
  • Lazy Stored Property(遅延保存プロパティ)

2. Stored Property(保存プロパティ)とは?

2. Stored Property(保存プロパティ)とは?
2. Stored Property(保存プロパティ)とは?

保存プロパティ(stored property)は、値を保存するもっとも基本的なプロパティです。

初期値を設定しておくか、イニシャライザinitで値をセットします。


struct User {
    var name: String
    var age: Int
}

let user = User(name: "花子", age: 25)
print(user.name)

花子

このように、nameageのようなプロパティが保存プロパティになります。実際に値が中に「保存」されているというイメージです。

3. Computed Property(計算プロパティ)とは?

3. Computed Property(計算プロパティ)とは?
3. Computed Property(計算プロパティ)とは?

計算プロパティ(computed property)は、値を保存せず、計算結果を返すプロパティです。

getを使って値を取得します。必要に応じてsetも書くことができます。


struct Rectangle {
    var width: Int
    var height: Int

    var area: Int {
        return width * height
    }
}

let rect = Rectangle(width: 4, height: 5)
print(rect.area)

20

areaプロパティは保存しているわけではなく、毎回widthheightをかけ算して結果を返しているだけです。これが計算プロパティの特徴です。

4. Lazy Stored Property(遅延保存プロパティ)とは?

4. Lazy Stored Property(遅延保存プロパティ)とは?
4. Lazy Stored Property(遅延保存プロパティ)とは?

遅延保存プロパティ(lazy property)は、最初にアクセスされるまで初期化されないプロパティです。最初から値を作らず、必要になるまで「待つ」スタイルです。

lazyキーワードを使って定義します。


struct DataLoader {
    init() {
        print("データを読み込みました!")
    }
}

struct View {
    lazy var loader = DataLoader()
}

var myView = View()
print("まだ読み込まれていません")
myView.loader

まだ読み込まれていません
データを読み込みました!

loaderlazyなので、アクセスされるまで初期化されません。この機能は、重い処理を最初から実行したくない場合に便利です。

5. 各プロパティの使い分けポイント

5. 各プロパティの使い分けポイント
5. 各プロパティの使い分けポイント

それぞれのプロパティの使いどころをまとめると、以下のようになります。

  • 保存プロパティ:基本的なデータをそのまま保存したいとき
  • 計算プロパティ:保存せず、毎回計算した結果だけが必要なとき
  • 遅延プロパティ:最初は不要だけど、後で使うときにだけ準備したいとき

たとえば、プロフィール画面を表示するアプリを考えたとき:

  • ユーザーの名前 → 保存プロパティ
  • 誕生日から計算する年齢 → 計算プロパティ
  • 重たい画像データの読み込み → 遅延プロパティ

6. プロパティの動作に注意しよう

6. プロパティの動作に注意しよう
6. プロパティの動作に注意しよう

計算プロパティは呼び出すたびに毎回計算されるため、複雑な処理が含まれているとアプリが重くなることもあります。

また、lazyプロパティはvar(変数)としてしか使えません。let(定数)ではエラーになります。

プロパティの使い方をしっかり覚えておくと、Swiftでの開発がもっとスムーズになります。

カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!