11月18日(火)3、4コマ目
今日、やったこと
- [練習問題]練習問題6(エクステンション)
- [練習問題 解説]練習問題6(エクステンション)
- プロトコル <= なぜか動かず
- タプル
- [練習問題]練習問題8(タプル)
今日のホワイトボード
[練習問題 解説]練習問題6(エクステンション)
そんなにややこしくはなかったかと。
正解例をあげておきます。
6-1
6-2
6-3
6-4
6-5
エクステンションでイニシャライザを追加する際、エクステンション元のイニシャライザをself.init()で呼び出し可能。
プロトコル
JavaやC#のインタフェースと同じイメージで。
JavaやC#でのインタフェースの実装は、プロトコルの準拠。
継承と同じ:を使う方法と、extensionを使う方法がある。
![]() |
| 図 プロトコルの準拠 |
JavaやC#のインタフェースと同じで、プロトコル型の変数はそのプロトコルを準拠したクラスや構造体のインスタンスを扱うことができる。(いわゆる多態性=ポリモーフィズム)
![]() |
| 図 プロトコルを使った多態性(ポリモーフィズム) |
が、すいませんが、サンプルがちゃんと動きませんでした。
タプル
型が異なる複数のデータをまとめて扱うことができる。
要素のアクセスはインデックス または 名前 でアクセスできる。
タプル利用のありがちパターンは関数の戻り値。
複数のデータをタプルでまとめて返すことができる。
受け取り側はタプルで受け取る。
![]() |
| 図 関数の戻り値をタプルにして複数の値をまとめて返す |
次回は
練習問題の続き。
クロージャー。


