もくもく独書 とは
Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)
- 作者: 石川洋資,西山勇世
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
上記の Swift実践入門を読みながら、思った事をTweetしていく取り組みです。
Swiftをはじめから丁寧にやっていきます。 なるべく毎日更新を目標にする。
リンク
前回:
次回:
今日の取り組み
今日もやってくぞ! Swiftもくもく独書。
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
今日は第五章「型の構成要素」について#もくもく独書
Swiftの型はクラス、構造体、列挙型として定義する事ができる。
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
Swiftのほとんどの組み込み型は構造体として定義されている。 型を構成する要素として、型が持つ値を保持する`プロパティ`と型の振る舞いを表す`メソッド`がある。pic.twitter.com/0Fp8KDZhfV #もくもく独書
型をインスタンス化するには型名の後ろに () をつけて イニシャライザを呼び出す。 例えば、 HogeClass ってクラスのインスタンスを作るには HogeClass() と呼ぶことでインスタンス化できる。
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
構造体、クラスについてはデフォルトで引数なしのイニシャライザが定義されている。#もくもく独書
ちなみに列挙型ではデフォルトのイニシャライザが定義されないため、 列挙型のHogeEnumは 単にHogeEnum() と書いてもインスタンス化することはできない。インスタンス化を行うには画像のようにする事で可能 pic.twitter.com/ZNDld1NREJ#もくもく独書
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
続いてプロパティについて
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
プロパティには値を保持するストアドプロパティと保持しないコンピューティッドプロパティってのがある。 ストアドプロパティにはプロパティオブザーバ、っていって 値変更を監視して変更前と変更後に命令を実行する事ができる。pic.twitter.com/oK1Ow6WYD7#もくもく独書
コンピューティッドプロパティはプロパティ自身では値を保持せず、既に存在するストアドプロパティなどから値を計算して値を返すプロパティの事。
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
画像のような感じで ゲッター、セッター(こっちの定義は任意)を定義する。pic.twitter.com/QXfrpvn7ZQ#もくもく独書
イニシャライザについて。 型のインスタンスを初期化するもの。すべてのプロパティはインスタンス完了までに値が代入されていないといけないため、必要に応じてイニシャライザ内で初期化し、全てのプロパティに値が代入された状態にする必要がある。pic.twitter.com/cRogQW3G6z#もくもく独書
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
メソッドについて。 メソッドは型に紐づく関数である。
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
メソッドは型の定義の内部で関数を定義する事で実現できる。
型のインスタンスに紐づくメソッドをインスタンスメソッド。型自身に紐づくメソッドをスタティックメソッドという。スタティックメソッドには static をつける。#もくもく独書
またメソッドはオーバーライドできる。
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
例えば、 同名のメソッドではあるが、引数の型が異なる / 戻り値の型が異なるメソッドとかを定義する事ができる。#もくもく独書
またサブスクリプトという文法について触れる。
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
配列や辞書型でも同様の定義があるけど、このようにsubscriptをつけて定義することで xxxx[引数] で値を得たり更新したりする事ができる。pic.twitter.com/rFdGvt6Tlh#もくもく独書
Swiftでは既に存在している型にプロパティやメソッドやイニシャライザなどの型を構成する要素を追加できる、これをエクステンションという。
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
例としてはこんな感じで作成できる。pic.twitter.com/gAppYMunqw#もくもく独書
Swiftでは型のネストを行う事ができる。
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
例だと、 Blogクラスと Categoryクラスと分ける事ができるが、ネストした型で定義する事で BlogとBlog.Categoryクラスと CategoryについてBlogとよりリレーションをもたせる事ができる。pic.twitter.com/X0XpeyeDTB
#もくもく独書
今日はここまでかな。
— イルカ@JPUG & 岡山swift (@ikkitang) 2018年6月2日
今日は型の定義についてでした。 サブスクリプト知らなかかったわ。w
型のネストとかもあんまり活用した事なかったのでRDBに沿って型を作ったりとかそういう事を考え出すとうまく活用できそう。#もくもく独書
Swift実践入門について
今はSwift4対応の改訂版出てるのでそっち読んだほうがいいよ。多分。
[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)
- 作者: 石川洋資,西山勇世
- 出版社/メーカー: 技術評論社
- 発売日: 2018/01/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る