在Swift书中,枚举示例运行良好。
enum CompassPoint: String {
case north, south, east, west
}
var northCom = CompassPoint.north
print (northCom)
然而我想使用一个可失败的初始化程序,因此做了一个例子。
enum WeekDay: String {
case monday, tuesday, wednesday, thursday, friday
init?(rawValue: Int){
switch rawValue {
case 0 : self = .monday
case 1 : self = .tuesday
case 2 : self = .wednesday
case 3 : self = .thursday
case 4 : self = .friday
default : return nil
}
}
}
并且收到一个错误,指出Weekday不符合RawRepresentable的要求 - 尽管我觉得编译器应该自动合成这个遵从性,所以不明白为什么这不能编译。
我做了什么 创建了一个类似的工作示例(以查看问题所在),并仍然希望使用具有可失败初始化程序的枚举来遵从RawRepresentable。 我在Swift书中找不到此示例,在Stack Overflow问题或更广泛的互联网上也找不到。
我提供的内容 上面给出了一个完整的示例,以及我期望的行为的工作示例和发生错误的代码。
没有帮助的内容 通过链接或评论引用Swift书籍是没有帮助的,因为我已经从中取得了一个示例。我想在该示例的基础上使用具有可失败初始化程序的枚举。 不使用枚举或可失败初始化程序也没有帮助。 这个问题涉及到使用具有可失败初始化程序的枚举,并遵守RawRepresentable。 这不是作业,但这些都是我的学习约束,并且我对结果感兴趣。
问题是 如何在与非工作示例相同的情况下使用具有可失败初始化程序的枚举?