14.構造体1

プログラミングのルール

プログラミングでは{}でまとめること(グループ化させること)は、重要なルールのひとつです。これから扱っていく構造体も{}でまとめます。(グループ化させます)

構造体

構造体とはこれらを{}でグループ化させたもの
  • 変数(プロパティ)
  • 定数(プロパティ)
  • 関数(メソッド)
注目

変数、定数、関数を構造体として{}でグループ化することができます。

構造体の中でつくられた変数はプロパティ定数はプロパティ関数はメソッドと今後呼び名が変わります。

構造体を扱えるようになる3つのレシピ
  • ①構造体をつくる(グループ化)
  • ②構造体をインスタンス化する
  • ③構造体にアクセスする
インスタンス化

インスタンス化はアクセスの準備のことです。「ファイルを解凍」して実際に使えるようになるようなイメージです。

①構造体をつくる(グループ化)

struct 構造体名{
    var プロパティ名:型名 = 値
    let プロパティ名:型名 = 値
}
  • struct 構造体名{}でグループ化します。
  • 変数・定数を宣言するときと同じvar・letを使用しますが、このときの名前はプロパティ名と呼びます。
  • 型名は型推論を使って省略することも可能です。

構造体をインスタンス化する

構造体名()
インスタンス化
  • 構造体名()でインスタンス化します。
  • 構造体名()でインスタンス化しますが、この状態ではアクセスの準備はまだ途中です。
  • 変数に構造体名()を渡します。

変数に構造体名()を渡す

var 変数名 = 構造体名()
インスタンス化完了
  • 変数名に構造体名()を渡し、アクセスの準備が完了しました。
  • 変数名に構造体名()を渡しているので、変数名が「インスタンス」として振る舞います。
  • 今後、この変数名をインスタンスと呼びます。

構造体にアクセスする

インスタンス.プロパティ名
プロパティへのアクセス

インスタンス.プロパティ名で構造体にアクセスすることができます。

インスタンスはあらかじめ渡しておいた変数名を指します。

プロパティを構造体でグループ化し、インスタンス化、アクセスしてみます。

struct Apple{
    let kind = "ふじ"
    let place = "長野"
}

var a = Apple()
print (a.kind)
print (a.place)
  • structで構造体を作ります。
  • 構造体名をApple{}にします。
  • {}の中でプロパティ名「kind」と「place」を宣言します。
  • var a = Apple()でインスタンス化が完了し、aがインスタンスになります。
  • インスタンス.プロパティ名でアクセスできます。
15.構造体2(イニシャライザ)15.構造体2(イニシャライザ)