Edited at

[Swift]enumにextensionを生やす

More than 1 year has passed since last update.

rawVauleのあるenumに対してextensionを生やす場合はRawRepresentableに対してextensionを行えばOK


enumにメソッドを生やす

enum Animal: String {

case fox
}

extension RawRepresentable {
func printRawValue() {
print(rawValue)
}
}

Animal.fox.printRawValue() //fox


Stringのenumにメソッドを生やす

RawValueに型情報が入っているのでそれを見る

enum Animal: String {

case fox
}

extension RawRepresentable where Self.RawValue == String {
func printRawValue() {
print(rawValue)
}
}

Animal.fox.printRawValue()