yashiganiの英傑になるまで死ねない日記

週末はマスターバイクでハイラルを走り回ります

Cocoa勉強会関西でSwiftの型について発表しました #cocoa_kansai

Swiftでコーディングしていると,型について色々と考えることがあります. 型の捉え方は学術的にも色々あるとおもいますが,このスライドは自分の経験から自分なりの捉え方なので,間違っていることや補足などあれば教えて下さい.

スライドの補足

例に出しているResult<T>ですが,Swiftコンパイラの仕様でこのままではコンパイルすることができません. このような型に包んで,Result<Box<T>>型にするか,@autoclosureで包むとコンパイルが可能になります.

class Box<T> {
    let value: T
    init(_ value: T) { self.value = value }
}

反省

最初に大きな声で挨拶したらなんか気持ちがアガってしまって,異様なテンションでプレゼンしてしまった. 完全に傾きすぎた…

反響を紹介します

参考資料

型破りの例としてEither型のデータ構造を紹介しました. これらのSwiftでの実装は以下のプロダクトが参考になります.

また,Either型のデータ構造については,すごいHaskellを楽しく学ぼう!でも詳しく紹介されていますので,詳しく知りたい方はそちらを参照されるのもいいとおもいます.

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!