11月13日(月)3、4コマ目

今日、やったこと

  • クロージャー
  • エラー処理

今日のホワイトボード

クロージャー

要は無名関数。

Swiftでは関数は第1級オブジェクトなので、変数に代入可能。 

図 クロージャー

引数の型と数、戻り値の型が同じなら、処理内容が異なるクロージャー式を代入可能。


練習問題8

クロージャーの練習問題をやりました。

正解例をあげておきます。

練習問題8-1

図 練習問題8-1 ヒント


練習問題8-2

図 練習問題8-2 ヒント


練習問題8-3

図 練習問題8-3 ヒント


練習問題8-4


エラー処理

JavaやC#のtry~catchと同じようなもの。

try~catchではなく、do~catch

エラー(例外)をスローする関数はthrowsで例外スローを宣言(Javaと同じ、型は不要)

エラー(例外)をスローする関数を呼び出す際はtryが必要

図 エラー処理

練習問題9

以前やった練習問題6を改造。正解例をあげておきます。
図 練習問題9 ヒント

calcurate()関数は
  • 引数heightが範囲外ならnilを返す=>よって、戻り値はOptional型
  • 引数heightが範囲外でもエラーはスローしない

result()関数は

引数heightが範囲外かチェックはしない

呼び出すcalcurate()がnilを返せばエラーをスロー

戻り値はString型のまま。Optional型ではない。


次回は

Swift入門の最終回。

11月20日(月)、21日(火)はiOSアプリ作成講習です。