关联值

枚举

enum ProgramInfo {
    case version(Int, Int, Int)
    case name(String)
}

func printInfo(_ info: ProgramInfo) {
    switch info {
        case .version(let major, let minor, let build):
            print("version: \(major).\(minor).\(build)")
        case .name(let name):
            print("name: \(name)")
    }
}

var info = ProgramInfo.name("CCDEditor")
printInfo(info)

info = ProgramInfo.version(3, 5, 25467)
printInfo(info)