【Swift入門】構造体(struct)の使い方を理解しよう!

Swiftにはクラスとよく似た機能として構造体(struct)があります。

この記事では、

  • 構造体(struct)とは
  • 構造体の使い方(初期値なし)
  • 構造体の使い方(初期値あり)
  • 構造体でイニシャライザを定義する方法
  • structとclassの違い

というように、構造体の基本的な解説から応用的な使い方に関しても解説していきます。今回はそんな<構造体(struct)の使い方についてわかりやすく解説します! ※この記事ではSwift3.1を使用しています。

構造体(struct)とは

構造体(struct)とは、クラスと同様にカプセル化を実現する方法として提供されている機能です。カプセル化とは、簡単に説明するとデータをオブジェクトの内部に隠して、容易に値を変更できなくするための入れ物のことです。

structの書き方

classとの大きな違いとしては、

  • structは継承ができない。
  • structはデイニシャライザ(クラスのインスタンス破棄)ができない。
  • classは参照型、structは値渡し。

などが挙げられます。

構造体(struct)の使い方

ここでは構造体(struct)の基本的な使い方を紹介します。

初期値なし

structはclassと同様インスタンスを作成して呼出します。structに初期値が設定されていない場合は、インスタンス作成時に初期値を指定します。

サンプルプログラム

実行結果:

サンプルプログラムのように、structのインスタンス作成時に初期値を指定すれば、値が参照できることがわかりますね!

初期値あり

続いて、structに初期値がある場合のサンプルです。structにあらかじめ値が設定されている場合は、インスタンス作成時に引数を指定する必要はありません。

サンプルプログラム

実行結果:

イニシャライザを定義

イニシャライザは、initメソッドと呼ばれる特別なメソッドを呼出して、値を初期化するときに使用します。イニシャライザはclassとstructで使用することができます。

サンプルプログラム

実行結果:

structとclassの違い

構造体(struct)とクラス(class)はよく似た機能のため、どちらを使えば迷ってしまいますね。前述したようにclassは参照渡しができますが、structは値渡しとなります。また、classは継承できますがstructは継承ができません。

そのため構造体(struct)は、

  • 簡単な値のカプセル化
  • 値を参照するのではなくコピーしたい場合
  • 継承する必要はない

などの場合に使用すると良いでしょう。

まとめ

ここでは構造体(struct)について、

  • 構造体とは
  • 構造体の使い方(初期値なし)
  • 構造体の使い方(初期値あり)
  • 構造体でイニシャライザを定義する方法
  • structとclassの違い

などについて解説しました。構造体はクラスのように複数の値をオブジェクトで管理できるため、非常に便利です。もし、構造体(struct)の使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説