Перечисления

enum ProgramInfo {
    case version(IntIntInt)
    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(3525467)
printInfo(info)