どういうことか
たとえば "りんご"
という文字列を受け取ると "アップル"
を返してくれる。
その翻訳処理を切り出したファイル(クラス)を作成した想定で書く。
受け取るほう
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
で引数受け取って書くこともできるけど、可読性を考えるとこのほうが良いのかなと思いました。
おわり(´・ω・`)