miso_soup3 Blog

主に ASP.NET 関連について書いています。

Swift 実践入門 感想

Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)

Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)

本のサポートページ|技術評論社

自分についての背景
  • C# 数年
  • Objective-C は触っただけくらい
  • Swift は、Optional についてやや知っている程度
読んだきっかけ

C# 開発者向けの Swift 本を探していたところ、この本を推奨されたので読みました。

感想など

自分が目的を果たせたという面から、C# 開発者が学ぶにはとても良い本だと思います。毎日少しずつ読んで 3 週間ほどで読み終わりました(一般的には長い方だと思います)。Mac で iBooks と
Playgrounds と画面を並べて読みました、快適でした。たまに Windows 上で読んでいた時は、IBM Swift Sandbox で実行していました。

この本がアピールしている通り、仕様の説明の後に実践的な記述についての説明があるのがよかったです。最後に総合的なまとめとして GitHub の検索プログラムの例が載っているのもよかったです。

注意したいのは、執筆時のバージョンは Swift 3 だったので、Swift 3.1 な今とは少し違う点です(といっても、警告がわずかに出るくらいでした。文字列補完での Optional 型の記述についてです)。また、キーワード・仕様の日本語訳が、ネットにある他の記事と違う場合があるので、日本語で固定して覚えるよりは、英語も確認した方が良さそうです。例えば、「連想値(associated value)」「連想型(associated type)」「失敗可能イニシャライザ(failable initializers)」など。

予想外だったのは、最後の章 Swift から Objective-C の利用についてです。Objective-C って Swift 向け?にいろいろ変わってるんだなー、へー、とパラパラ読みました。

Swift と C# について

この本を読む前に Swift のコードを読む機会がいろいろあったのですが、思ったのは、最初に Swift のクロージャの仕様を把握しておいた方がリーディングは捗りそう、ということです。Swift では、いろいろ省略した記述ができます。

基本的な言語仕様においては、簡単な記述が多いので身構えなくてOKだと思いました。検査例外について、勝手に難しそう、と思っていましたが意外とキーワードは少なめでした。try と Optional の対比がいいなーと思います。

その他、いいなーと思ったところです:

  • enum の Raw Values, 完備性
  • パターンマッチ
  • if let a = a { ... }
  • defer
  • 決まっているのならいろいろ省略できるところ(強力な型推論、と言っていいのだろうか? 加えて記述の簡易さ)
  • extension, protocol extension
  • クロージャ

”基本的な仕様においては”、C# と似ているので、本の内容は理解しやすいです(氷山の一角だろうと思いますが…)

[最後に] ノート

感想ノートを gist にアップしましたhttps://gist.github.com/hhyyg/3a35b19304fb1ab2c572111ce5e0b6a2
完全に自分向けなので読みにくいと思います。また、本の記載内容と自分が補足したことが混ざっています。