Swift

Swift:structってなんなの?


structとは

structとは 構造体 のことです。

このような形で使用します。

struct Note {
    var text: String
}

 

クラスと似てる?ってかどう違うの??

 

 

構造体って何??

 

 

色々な疑問があります。

正直調べてもイマイチわかりませんでした。

 

とりあえず、

  • 継承できない
  • 参照渡しではなく値渡し

ってことらしい。

 

用途としては、データが小さくてシンプルな時や継承が必要ないときに構造体を使用するということがわかりました。

 

 

これについては例を見ていきましょう。

class Note {
    var number :Int = 0
}

let note = Note()
note.number += 100

let note2 = note
note2.number += 200

print(note2.number) //"300"


struct Article {
    var number: Int = 0
}


var article = Article()
article.number += 100

var article2 = article
article2.number += 200

print(article2.number) //"100"

Noteクラスを定義し、そのNoteインスタンスを生成する。

インスタンスのnumberに100足す。

そのインスタンスを別の定数に入れて、さらに200たす。

すると最初に作成したインスタンスのnumberが300になる。

鍵はこの行

let note2 = note

これは定数note2は定数noteの参照を渡しているということである。

 

 

これがクラスである。

これには納得できる!!

 

しかし、構造体の場合同じことをやっても

最初に作成したインスタンスのnumberは100のままである。

var article2 = article

構造体の場合は、参照渡しではなく値渡し(コピーの方がしっくり来るかもしれません)なので、articleとarircle2は全く別の独立した存在となります。

 

これは便利!!!

とは正直思わないが、いつかそう思える日が来ることを楽しみにしていよう。


ABOUT ME
ささお
3年目iOSエンジニア。 スタートアップで働いておりやす。 プログラミングスクールとエンジニアのキャリアを考えたい。 作ったアプリ - https://apps.apple.com/us/app/loverprofile/id1463563845?l=ja&ls=1