一、枚举类型的定义
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
}
结果为: