作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在 Swift 2 中,您可以从字符串创建枚举吗?
enum Food : Int { case Pizza, Pancakes }
let str = "Pizza"
let food = Food(name:str) // for example
最后一行不起作用,但我正在寻找类似的东西。就像在 Java 中一样,您可以说 Food.valueOf("Pizza")
。
编辑:我不能将字符串用作原始值。
最佳答案
您可以为采用 String
作为参数的枚举创建初始化程序。从那里,您切换字符串以将 self 的值设置为特定大小写,如下所示:
enum Food: Int {
case None, Pizza, Pancakes
init(string: String) {
switch string {
case "Pizza":
self = .Pizza
default:
self = .None
}
}
}
let foo = Food(string: "") // .None
let bar = Food(string: "Pizza") // .Pizza
关于swift - 如何从字符串创建枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30741696/
我是一名优秀的程序员,十分优秀!