(discord/swift/2018/03/02/0) SwiftのOptionalが絡んだoverrideの仕様が乱れてる件について
概要
- discord ios dev
- #swift
- 2018/03/02-03
- SwiftのOptionalが絡んだoverrideの仕様が乱れてる件について
log
tarunon
- 2018/03/02
class My { func get() -> Int?? { return 1 } } class MyMy: My { override func get() -> Int? { return 2 } } MyMy().get()
おもちと議論しててOptionalのアレを見つけてしまった
cc @koher @rintaro
koher
- 2018/03/02
これはひどい・・・
omochimetaru
- 2018/03/03
改めてみたら説明が足りなすぎる
↑のコードはオーバライドできない、ってコンパイルエラーになる。
でも、もし親が Int で 子が Int? ならオーバライドできるので、
法則が乱れてるね、という話です
tarunon
- 2018/03/03
[SR-7111] Compile fail override function T?? to T? - Swift
検証したいこと
- Optional、ArrayなどのGenericsが絡んだオーバーライドの挙動を確認