///< “定义一个名为 Student 的枚举类型,它的一个成员值是具有 (Int,Int,Int,Int) 类型关联值的 studentClass ,另一个 成员值是具有 String 类型关联值的 studentAge 。”
enum Student {
case studentClass(String, String, String, String)
case studentAge(String)
}
var result = Student.studentClass("xxx小学", "六年级", "五班", "lin")
result = Student.studentAge("23")
///< 原始的 Student.studentClass 和其整数关联值被新的 Student.studentAge 和其字符串关联值所替代。 Student 类型的常 量和变量可以存储一个 .studentClass 或者一个 .studentAge (连同它们的关联值),但是在同一时间只能存储这两个值中的一 个。
print(result)
switch result {
case .studentClass(let schoolName, let grade, let className, let name):
print("studentClass: \(schoolName), \(grade), \(className), \(name).")
case .studentAge(let age):
print("studentAge code: \(age).")
}
///< 如果一个枚举成员的所有关联值都被提取为常量,或者都被提取为变量,为了简洁,你可以只在成员名称前标注一个let或者var:
switch result {
case let .studentClass(schoolName, grade, className, name):
print("studentClass: \(schoolName), \(grade), \(className), \(name).")
case let .studentAge(age):
print("studentAge code: \(age).")
}