原始值(Raw Values):
Int
、String
、Float
等。关联值(Associated Values):
原始值的优势:
关联值的优势:
原始值类型:
Int
、String
、Float
等基本数据类型。关联值类型:
原始值的应用场景:
Sunday
、Monday
等)。200
、404
等)。关联值的应用场景:
// 原始值示例
enum Weekday: Int {
case Sunday = 0
case Monday
case Tuesday
case Wednesday
case Thursday
case Friday
case Saturday
}
// 关联值示例
enum Result<T> {
case success(T)
case failure(Error)
}
let successResult: Result<String> = .success("Operation succeeded")
let failureResult: Result<String> = .failure(NSError(domain: "", code: 404, userInfo: nil))
问题:如何区分枚举成员?
解决方法:
// 原始值区分
let day = Weekday.Monday
switch day {
case .Sunday:
print("Sunday")
case .Monday:
print("Monday")
// 其他case...
}
// 关联值区分
switch successResult {
case .success(let message):
print("Success: \(message)")
case .failure(let error):
print("Failure: \(error)")
}
通过以上解释和示例代码,你应该能够理解快速枚举中关联值和原始值之间的差异及其应用场景。
领取专属 10元无门槛券
手把手带您无忧上云