ぜのぜ

しりとりしようぜのぜのぜのぜ

122日目

日記

ずっと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として実装されている.