【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)の使い方を忘れてしまったら、この記事を思い出してくださいね!

エラーばかりでプログラミング学習が進まない、と悩んでいませんか?

プログラミング学習を始めたけれど、エラーの原因がよく分からなかったり、調べてみたけれど解決されず「どうやって進めればいいんだろう」と放置してそのまま挫折しかけていませんか?

一度進め方が分からなくなるとやる気も失せてしまいますよね。

そんなあなたにオススメしたいのが、「侍エンジニア塾」の無料体験レッスンです。独学で1000時間以上の学習が必要と言われているところを300時間に短縮する「プログラミング独学法」をお伝えします。

下記の無料体験レッスン予約カレンダーよりお申し込みいただけます。あなたのご相談を心よりお待ちしております。

LINEで送る
Pocket

書いた人

ヤマシタ

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

おすすめコンテンツ

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

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