キャンペーンの今のうちに是非!!↓


⇒「ひろゆきの名著『1%の努力』を無料で全部読む方法

【Swift奮闘記ep21】エクステンション(定義、準拠するプロトコルの追加)

IPhoneアプリ作成Swift奮闘記

この本を見ながら進めてる↓

前回⇒「【Swift奮闘記ep20】プロトコル後半(プロトコルの型としての使用、デリゲートの使用)

プロトコルを華麗に受け流して、エクステンションに移る。

 

エクステンションとは

エクステンション・・・既存の型(またはプロトコル)を、元のソースコードを修正することなく拡張できる機能

元のソースコードを修正することなく」っていうのがミソだと思うね。

これだけでもうどんな機能なのか想像できちゃうから後は実際にエクステンションをどう定義するか見ればオッケー。

髪を付け足す「エクステ」と同じという解説がウケた。確かに。

エクステンションが既存の型に拡張させる機能一覧は以下。

  • プロパティ(計算型プロパティ)
  • メソッド
  • イニシャライザ
  • サブスクリプト
  • プロトコルの準拠

 

エクステンションの定義

実際にエクステンションを定義してクラスの機能を拡張してみよう。

よくわかった!エクステンション!

ありがとう!エクステンション!

俺の人生のエクステンションできれば・・・。

 

準拠するプロトコルの追加

後からプロトコルの準拠をさせることができる。

実際にやってみよう。

まあ細かいところは飛ばしていいんだけども、とりあえず先にクラスを定義しちゃったとしても、後からプロトコルへ準拠させることができるってことを覚えておこう。

※追記

最後のlet efficiency: FuelEfficiency = car がわかりづらいかなと思うんだけど

単純にcar.fuelEfficiencyと記述すればメソッドfuelEfficiencyを使えるよね。

多分これは

”FuelEfficiency”型に指定した”extension”に同じFuelEfficiency型のcarを代入できる

ということを強調したいためだ。

 

第4章Swiftとオブジェクト指向プログラミングの終了

やっと第4章が終わった。長かった。

理解度は60%といったところかな。復習しないと忘れそうだけど、引き続き先に進んじゃおうと思う。

ただ、次の章も文法の勉強。心が折れそうだよ〜。

続き⇒「【Swift奮闘記ep22】タプル(定義、タプルの参照、値の名前付タプル、関数の戻り値にタプル)

コメント