解放区在住氷翠 緑の閃光

structというのは

2021-11-30 22:21

どうも氷翠です。

今回は、swiftuiが主流になってからのお話で、データを定義するときによく使う「struct」というものがどういうものなのか。これを調べてみました。

そもそも、「struct」というのは、「structure」の略で、構造体という意味を持つ言葉だということ。このswiftの中ではデータ型の一種と考えるのがいいだろうということ。また、複数の値を格納することができる。今後のswiftuiでは主に使用していくことになるようだ。


struct test
{
    var id: String
    var value: String
}

と、このように定義していく。構造体はプロパティとメソッドをもたせることができ、柔軟な対応が可能になっている。

上記のコードではプロパティだけを持たせた構造体ということになるが、「func」を利用することで、メソッドも定義することができる。


struct test
{
    var id: String
    var value: String

    func a(b: String, c: String) -> String
    {
        var d = b + c
        reutrn d
    }
}

メソッドは上記のように定義していくことになる。しかし、これは今までのswiftと同じように扱うため、それほど難しいことでもないだろう。そして、他にも、今まで「class」で定義してきたことをこの「struct」を使うということ以外は同じではないだろうか。

イニシャライズ

要は初期化のことで、構造体が持っているプロパティに予めセットしておく値を定義したり、この構造体にアクセスしたときに行う処理をここで行うというもの。これも今までの「class」と同じように「init」を利用することになる。


init()
{
    処理
}

計算型プロパティ

computed propertyという。これは、get / setを使って、値を生成するプロパティ。しかし、これにはルールがあって、getは単独で定義することができるが、setはgetがないと定義ができないようになっている。更に、getの中で処理された値は自動的に「newValue」という変数に入るようだ。氷翠はまだ試していないw

しかし、これを使いこなすことができれば、いろいろとデータに幅を持たえることができそうだ。


var a: String
{
    get
    {
        b + c
    }
    set
    {
        print(newValue)
    }
}

といった感じで定義していくようだ。

ここまでいろいろな使い方があるというのがわかったが、これら基本的な使い方を覚えるだけでも大きなことができそうだ。

使い分けを考えるとなると、氷翠としてはもちろん構造体として使うのだから、処理そのものはクラスを利用するという考えで間違いはなさそうだ。このswiftを勉強しはじめて、MVC(Mdel View Controller)という考え方が身についた、身にしみたという感じなのです。