1. ホーム
  2. ios

Swift の enum 継承

2023-10-24 07:31:50

質問

Swiftでenumを継承することは可能ですか?enumの継承に関して注意すべきルールは何ですか?

次のテストコードです。

enum TemperatureUnit: Int {
    case Kelvin, Celcius, Farenheit
}

enum TemperatureSubunit : Temperature {  
}

生成する

error: type 'TemperatureSubunit' does not conform to protocol 'RawRepresentable'

どのように解決するのですか?

Swift言語では、Structs、Enum、Classがあります。StructとEnumはコピーで渡されますが、Classは参照で渡されます。継承に対応しているのはClassのみで、EnumとStructは対応していません。

というわけで、Enum型(とStruct型)には継承ができません。こちらをご覧ください。

stackOverflowの違い クラスと構造体