一、枚举类型的定义

1.仓颉枚举类型的关键字为:enum,语法为:enum 名称{|类型1|类型2|...|类型n }。

注意:仓颉中的枚举类型是引用类型。

enum Family{
    |FATHER|MOTHER|SON
}
main(): Int64 {
    
    return 0
}

2.如何进行调用

        用名称.类型,例如:Family.FATHER

enum Family{
    |FATHER|MOTHER|SON
}
main(): Int64 {
    Family.FATHER
    Family.MOTHER
    Family.SON
    return 0
}

3.枚举类型主体内定义函数方法

        仓颉编程语言,枚举类型中,可以定义一系列函数方法。

enum Family{
    |FATHER|MOTHER|SON
    func getFatherSalary()
    {
        println("父亲的工资")
    }
    func getMotherSalary()
    {
        println("母亲的工资")
    }
}
main(): Int64 {
    
    return 0
}

        通过名称.类型.函数名进行调用。

enum Family{
    |FATHER|MOTHER|SON
    func getFatherSalary()
    {
        println("父亲的工资")
    }
    func getMotherSalary()
    {
        println("母亲的工资")
    }
}
main(): Int64 {
    Family.FATHER.getFatherSalary()
    Family.MOTHER.getMotherSalary()
    return 0
}

结果为:

4.定义的类型可以带返回值

        |类型1(T)|类型2(T)|...|类型n(T),其中T为泛型。

enum Family{
    |FATHER(Int64)|MOTHER(Int64)|SON(String)
    func getFatherSalary()
    {
        println("父亲的工资")
    }
    func getMotherSalary()
    {
        println("母亲的工资")
    }
}
main(): Int64 {
    
    return 0
}

二、模式匹配

        match(变量名){case 类型 => 主体  case 类型=> 主体 ... }

enum Family{
    |FATHER(Int64)|MOTHER(Int64)|SON(String)
}
func getAgeHabit(fam:Family)
{
    match(fam){
        case FATHER(age) => println("父亲年龄为:${age}")
        case MOTHER(age) => println("母亲的年龄为:${age}")
        case SON(habit) => println("儿子喜欢${habit}")
    }
}
main(): Int64 {
    getAgeHabit(Family.FATHER(36))
    getAgeHabit(Family.MOTHER(34))
    getAgeHabit(Family.SON("学习仓颉编程语言"))
    return 0
}

结果为:

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐