我无法找出访问枚举原始值的语法.下面的代码应该澄清我想要做的事情.
enum Result<T, U> {
case Success(T)
case Failure(U)
}
struct MyError: ErrorType {
var status: Int = 0
var message: String = "An undefined error has occured."
init(status: Int, message: String) {
self.status = status
self.message = message
}
}
let goodResult: Result<String, MyError> = .Success("Some example data")
let badResult: Result<String, MyError> = .Failure(MyError(status: 401, message: "Unauthorized"))
var a: String = goodResult //<--- How do I get the string out of here?
var b: MyError = badResult //<--- How do I get the error out of here?
Run Code Online (Sandbox Code Playgroud)
你可以不用switch这样做:
if case .Success(let str) = goodResult {
a = str
}
Run Code Online (Sandbox Code Playgroud)