Contents
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