6/5 詳解Swift改定版読書勉強会 #14に参加してきました
前からこの勉強会は気になっていたもののなかなか都合がつかず、#14にして初参加してきました。
進め方
その週の担当者の方が本に沿ってPlaygroundで資料を作ってきてくれるので、それをスクリーンに映してみんなで見つつ、気になったところは質問したり実際にPlaygroundで動かしたりしつつ読み進めていくかんじです。
私は事前に読んでから参加しましたが、ちゃんと本をなぞっていくので読んでいなくてもついていくことはできるような気がします。
内容
今回は第12章のエラー処理でした。私はまだまだぺーぺーエンジニアなので多くの学びがありました。内容については基本的に本に書かれているので、特に勉強になったなーと思うことなどなどを書こうかと思います。
do-catch
do-catchにはwhere節やisが使えます。
func errorFunc() throws { do { try errorMyFunc() } catch is MyError { print("MyError") } catch { print("catch") } }
「エラーのない関数」にするためには全てのエラーを捕捉する必要があります。全てのエラーを補足できていれば一応最後のcatchは必要ありませんが、例えばライブラリのバージョンアップによってエラーの種類が増えるかもしれないのでcatchは書いておくべきです。
defer
単純に私は今までよくわかってなかったので勉強になりました。
deferはコードブロックの内部に記述し、そのコードブロックの実行が終了するか、中断されるときに必ず実行される内容を指定できる文になります。これはオープンしたファイルをクローズしたり、一時的に確保したメモリを解放するのを忘れないようにする時によく使われます。deferがどのタイミングで呼ばれるのか、ブロックの範囲外のコードとどのように関わっているのかなどは実際に本に書かれているコードを実行して確かめるのがいいです。
アクセス修飾子
今現在はpublic, internal, privateの3つですね。これが、Swift3.0ではpublic, internal, fileprivate, privateの4つになるとのこと。これについてはswift-evolutionに書かれています。今までのprivateがSwift3.0で言うfileprivateになり、Swift3.0で言うprivateは宣言内、スコープ内で参照可能であることを示す修飾子になるようです。Swift3.0の勉強もちゃんとしないといけませんねこれは。。。
感想
そもそも参加者の中にレベルの高い人がいるので、自然と内容が濃くなります。Swiftの文法を勉強する環境としては素晴らしいところだと思います。
この勉強会は次週の#16で最後のようです。都合が良い方は(すでに定員オーバーしていますが)参加登録してみるといいかもしれません。