Swiftでコーディングしていると,型について色々と考えることがあります. 型の捉え方は学術的にも色々あるとおもいますが,このスライドは自分の経験から自分なりの捉え方なので,間違っていることや補足などあれば教えて下さい.
スライドの補足
例に出しているResult<T>
ですが,Swiftコンパイラの仕様でこのままではコンパイルすることができません.
このような型に包んで,Result<Box<T>>
型にするか,@autoclosure
で包むとコンパイルが可能になります.
class Box<T> { let value: T init(_ value: T) { self.value = value } }
反省
最初に大きな声で挨拶したらなんか気持ちがアガってしまって,異様なテンションでプレゼンしてしまった. 完全に傾きすぎた…
反響を紹介します
次の発表「型」とかタイトルがカッコイイ。テーマもすごく興味深い。 #cocoa_kansai
— 熊谷 友宏 (@es_kumagai) 2015, 2月 28
「なぜ型が必要なのか」。熱い。 #cocoa_kansai
— haranicle (@haranicle) 2015, 2月 28
yashiganiさんめっちゃ盛り上がっててすごい #cocoa_kansai
— Hiroki Kato (@cockscomb) 2015, 2月 28
禅みたいなものを感じる #cocoa_kansai
— Shin Ise (@iseebi) 2015, 2月 28
(なんで怒ってるんだろうこの人..) #cocoa_kansai
— haranicle (@haranicle) 2015, 2月 28
メモリ管理のための型は邪魔だったけど、プログラマのための型は嬉しいわけだな。 #cocoa_kansai
— KANEUCHI Tetsuya (@kaniza) 2015, 2月 28
Objective-Cプログラマのための最高のSwift入門だった気がする #cocoa_kansai
— Hiroki Kato (@cockscomb) 2015, 2月 28
参考資料
型破りの例としてEither
型のデータ構造を紹介しました.
これらのSwiftでの実装は以下のプロダクトが参考になります.
また,Either型のデータ構造については,すごいHaskellを楽しく学ぼう!でも詳しく紹介されていますので,詳しく知りたい方はそちらを参照されるのもいいとおもいます.
- 作者: Miran Lipovača,田中英行,村主崇行
- 出版社/メーカー: オーム社
- 発売日: 2012/05/23
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 580回
- この商品を含むブログ (67件) を見る