ぜのぜ

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

54日目

日記

今日は唐揚げを作ってビールを飲んだ.フルーレ団体の準決勝めちゃくちゃおしかったな.

昨日は久々に放送があってよかった.これで明日からも生きていける.

今日書いたコード

class Wrapped {
    let num: Int

    init?(_ numString: String) {
        if let converted = Int(numString) {
            num = converted
        }

        return nil
    }
}

class Unwrapped {
    let num: Int

    init!(_ numString: String) {
        if let converted = Int(numString) {
            num = converted
        } else {
            num = 0
        }
    }
}

// unwrapが必要
print(Wrapped("NaN")?.num) // nil
// unwrapが不要
print(Unwrapped("NaN").num) // 0

初めて知ったこと

IUOな型のインスタンスを返すイニシャライザがあること.

最初,let unwrapped = Unwrapped("NaN")としていてunwrappedUnwrapped?型になるのなんでやとなっていたが,IUOな型は単なるOptional<Type>として扱えるときはそう扱われる[1]ので想定が間違っていた.