这是一个简单的enum
混合型案例:
enum Options {
case width
case height
case gravity
}
width
和height
只能有Int
类型,但最后一个 - gravity
- 只能包含String
类型“北”或“东南”。
如何检查该枚举中是否存在给定变量并将其值转换为某种类型?
说我有一个数组:
let arr:Array = ["width", "12"]
我想检查枚举中是否存在arr[0]
(“width”),如果是,请将第二个元素arr[1]
(“12”)转换为适当的类型(Int
在那种情况下)。
当我明确将enum的类型设置为String
时:
enum Options:String
比我可以执行检查:
if Options(rawValue: arr[0]) != nil
这远非理想,因为如前所述,我的枚举应该包含混合类型的案例。
有没有办法将显式类型与枚举中的案例相关联,所以当我知道枚举中存在arr[0]
时,我可以将arr[1]
强制转换为该类型?