Swiftの値付きenumに関する質問です。
###前提・実現したいこと
reflectingを用いて値付きenumの値名を取得したところ、
.0や.1といった名前が文字列として取得されてしまいます。
下記のコードでは「.0 : 山田\n.1 : 太郎\n」等と出力されますが、
これを「姓 : 山田\n名 : 太郎\n」と出力されるようにしたいです。
よろしくお願い致します。
###該当のソースコード
swift
1 2enum Name: CustomStringConvertible { 3 case English(First: String, Middle: String?, Last: String) 4 case 日本語(姓: String, 名: String) 5 6 var description: String { 7 var mirror: Mirror 8 switch self { 9 case let .English(params): mirror = Mirror(reflecting: params) 10 case let .日本語(params): mirror = Mirror(reflecting: params) 11 } 12 13 var name = "" 14 for child in mirror.children { 15 guard let label = child.label, value = child.value as? String else { 16 continue 17 } 18 name += label + " : " + value + "\n" 19 } 20 return name 21 } 22} 23 24print(Name.English(First: "Steven", Middle: "Paul", Last: "Jobs")) // .0 : Steven\n.1 : Paul\n.2 : Jobs\n 25print(Name.日本語(姓: "山田", 名: "太郎")) // .0 : 山田\n.1 : 太郎\n
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。