日記
今日は唐揚げを作ってビールを飲んだ.フルーレ団体の準決勝めちゃくちゃおしかったな.
昨日は久々に放送があってよかった.これで明日からも生きていける.
今日書いたコード
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")
としていてunwrapped
がUnwrapped?
型になるのなんでやとなっていたが,IUOな型は単なるOptional<Type>
として扱えるときはそう扱われる[1]ので想定が間違っていた.