LoginSignup
1
1

More than 1 year has passed since last update.

【Swift】enumで文字列を受け取って文字列で返す

Last updated at Posted at 2021-06-04

どういうことか

たとえば "りんご" という文字列を受け取ると "アップル" を返してくれる。
その翻訳処理を切り出したファイル(クラス)を作成した想定で書く。

受け取るほう

import Foundation

final class Translation {
    enum EnglishName: String {
        case apple = "アップル"
        case grape = "グレープ"
        case orange = "オレンジ"

        init?(fruit: String) {
            switch fruit {
            case "りんご":
                self = .apple
            case "ぶどう":
                self = .grape
            case "みかん":
                self = .orange
            default:
                return nil
            }
        }
    }
}

送るほう

let japaneseName = "りんご"

var translate = Translation.EnglishName(fruit: japaneseName).rawValue
print(translate) // "アップル"

.rawValue をきちんと付けないとStringにならなくてハマる(ハマった)。
func で引数受け取って書くこともできるけど、可読性を考えるとこのほうが良いのかなと思いました。

おわり(´・ω・`)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1