仓颉-枚举和模式匹配

一、枚举类型的定义

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
}

结果为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值