Avatar
Avatar
koher
  • T は暗黙の型変換を使って T? のサブタイプのフリをするので () -> Int() -> Int? に代入することもできる
  • しかし、プロトコルの提供する () -> Int? を返すメソッドを持つという制約に () -> Int を返すメソッドで実装することで準拠することはできない
  • そのため、 ClosedRangeClosedRange.min に該当する要素を常に持つが Optional を返さざるを得ない ということ?
(edited)
たまにこれのせいで LocalizedError protocol の var errorDescription: String? (デフォルト実装あり) を実装しようとして var errorDescription: String になっていて実装できていないみたいな例を見かけることがあります.