日記
ずっとYouTubeで分厚い肉を焼く動画をみていた.ああいう肉ってどこで買えるんだろ.
今日書いたコード
struct Some { func someFunc(_: () -> Void) {} // Invalid redeclaration of 'someFunc()' // func someFunc(_: () -> Void) throws {} // 引数の型が違うのでオーバーロードできる func someFunc(_: () throws -> Void) {} } func neverReturn() -> Never { fatalError() }
感想
Never
というやつはSwift 3から導入された型で,プロポーザルはこれ.関数が呼び出し元に戻らないことを表すのに使う.もともと@noreturn
というattributeがあった(まだある?)が,@noreturn () -> Int
が@noreturn () -> Void
と同じなのか分かりづらいみたいな動機があったらしい.Never
はcaseを持たないenumとして実装されている.