はじめに
どの記事・参考書よりも短く簡潔に触れていこうと思うので、めっちゃ詳しく勉強したい人はこの記事全く参考になりません。
構造体とは
構造体とは設計図であり、インスタンス化(PCのメモリに突っ込む)をして初めて使用することができる。また、インスタンス化とは実体化ともいう。
上記を踏まえて、超大まかに要点だけ絞っていうと二つにまとめることができる。
- プロパティ(変数や定数)、メソッド(関数)、イニシャライザ(初期化関数)をひとまとめにしたもの
- 入力(引数)、出力(戻り値)の役割を担うもの
詳細
・ インスタンス化をしてみよう
インスタンス化のやり方は主に2種類ある。
(1)構造体名()
(2)変数 or 定数 = 構造体名() ←変数は構造体のインスタンスという
Swift
struct Apple {
let kind = "ふじ"
var size = "S"
}
//インスタンス化1
Apple().kind //ふじ
Apple().size //S
//インスタンス化2
var apple = Apple()
print(apple.kind) //ふじ
print(apple.size) //S
apple.size = "L" // 書き換えも可能である
}
- イニシャライザを使って初期値を決めてみよう
Swiftでは原則プロパティの初期値は決まっていなければならず、それを解決させましょうみたいなのがイニシャライザ。また、インスタンス化時に実行される特殊なメソッド。
Swift
struct Students {
//構造体のプロパティにおいては初期値がなくても良い
var name: String
var age: Int
var from: String
init(n: String, a: Int, f: String){
self.name = n
self.age = a
self.from = f
}
}
//インスタンス化時に初期値を決める
var students = Students(n: "太郎", a: 10, f: "東京")
print(students.name, students.age, students.from) //太郎, 10, 東京
//おまけ
//メンバワイズイニシャライザー(initを使わなかった場合のデフォルトで備わっているイニシャライザ)
var students1 = Students(name: "小太郎", age: 5, from: "神奈川")
print(students.name, students.age, students.from) //小太郎, 5, 神奈川
・メソッドを使ってみよう
Swift
struct Algebra {
var a: Float
var b: Float
//メソッド
//和
func sum() -> Float {
return a + b
}
//差
func diff() -> Float {
return a - b
}
//積
func times() -> Float {
return a * b
}
//商
func div() -> Float {
return a / b
}
}
//インスタンス化
let algebra = Algebra(a: 1.0, b: 2.0)
algebra.sum() //以下、各々値が出る
algebra.div()
algebra.times()
algebra.diff()
おわりに
まとめるの疲れました。
開発環境
- Xcode-13.4.1
- iOS13以降