Go名目怎样经常使用枚举 伙计 (go的名称)

Go名目怎样经常使用枚举 伙计 (go的名称)

本文目录导航:

伙计,Go名目怎样经常使用枚举?

哈喽,大家好,我是asong。

枚举是一种很关键的数据类型,在java、C言语等干流编程言语中都允许了枚举类型,然而在Go言语中却没有枚举类型,那有什么代替打算吗?本文咱们来聊一聊这个事件;为什么要有枚举?咱们以java言语为例子,在JDK1.5之前没有枚举类型,咱们理论会经常使用int常量来示意枚举,普通经常使用如下:经常使用int类型会存在以下隐患:于是乎咱们就想到用常量字符来示意,代码就变成了这样:这样也雷同存在疑问,由于咱们经常使用的常量字符,那么有些程序猿不按套路出牌就可以经常使用字符串的值启动比拟,这样的代码会被始终模拟变得越来越多的,而后屎山就出现了;所以咱们迫切须要枚举类型的出现来起到解放的作用,假定经常使用一个枚举类型做入参,枚举类型就可以限定沙雕用户不按套路传参,这样就可以怼他了,哈哈~;经常使用枚举的代码就可以变成这样,传了枚举之外的类型都无法以了;Go言语就没有枚举类型,咱们该经常使用什么方法来代替呢?定义新类型成功枚举:枚举理论是一组关系的常量汇合,Go言语中有提供常量类型,所以咱们可以经常使用常量来申明枚举,但也雷同会遇到上述的疑问,起不到解放的作用,所认为了起到解放咱们可以经常使用Go言语另外一个常识点 -- 类型定义,Go言语中可以经常使用type关键字定义不同的类型,咱们可认为整型、浮点型、字符型等定义新的类型,新的类型与原类型转换须要显式转换,这样在必定水平上也起到了解放的作用,咱们就可以用Go言语成功如下枚举:下面的代码就会报错:定义新的类型可以起到解放作用,比如咱们要审核形态机,入参限定了必定是OrderStatus类型,假设是int类型就会报错。

下面咱们的枚举成功方式只能失掉枚举值,失掉不到其映射的字面意思,所以咱们可以优化一下,成功String方法,经常使用官网提供的cmd/string来极速成功,代码如下:口头命令go generate ./...生成orderstatus_文件:下面咱们的枚举成功方式就能失掉枚举值及其映射的字面意思。

总结:只管Go言语没有提供枚举类型,然而咱们也可以依据Go言语的两个个性:常量和定义新类型来成功枚举,方法总比艰巨多吗,开源库是低劣的,咱们往往可以从高手那里里学习很多,记住,请永远坚持一个学徒之心;好啦,本文到这里就完结了,我是asong,咱们下期见。

Java干货 | Java申明枚举类型、枚举(enum)类、EnumMap 与 EnumSet

本文详述了Java中的枚举类型、枚举类、EnumMap与EnumSet的经常使用与个性,联合详细名目案例,确保读者能深化了解并灵敏运用这些概念。

首先,咱们引见枚举类型。

经过Java的关键字enum,申明枚举类型时,实例被视为固定的且有限的常量。

例如,申明了一个枚举类型Weekday,蕴含一周七天的枚举值。

值得留意的是,枚举值必定所有大写,表现其常量性质。

接着,论述枚举类。

它是一种不凡的类方式,用于成功枚举类型。

枚举类可以领有属性、方法及结构方法,增强枚举的适用性。

例如,申明了一个枚举类Weekday,蕴含一周七天的枚举值,每个枚举值具备中文和英文称号,经过结构方法初始化属性,提供getter方法。

进一步引见EnumMap。

这是一种不凡的Map,其键必定为枚举类型。

经过创立EnumMap,可以轻松地统计枚举类型的数量或关联数据。

例如,创立一个EnumMap,键为枚举类型Weekday,值为字符串类型,经过put方法减少元素,经常使用get方法失掉元素。

留意,EnumMap中的元素依照枚举值的顺序陈列。

之后,解释EnumSet。

它是不凡的Set,元素必定为枚举类型。

例如,创立一个EnumSet,蕴含一周上班日的枚举值,经常使用方法创立蕴含指定范畴的EnumSet。

雷同,EnumSet中的元素依照枚举值的顺序陈列。

在名目案例中,经常使用枚举类型示意酒店预订系统的房间类型和订单形态。

申明RoomType和OrderStatus枚举类型,区分示意房间类型和订单形态。

每个枚举值具备一称号,经过结构方法初始化称号,并提供getter方法。

在预订系统中,应用EnumMap统计房间类型和订单形态的数量,经常使用EnumSet示意可用的房间类型。

提供bookRoom和updateOrderStatus方法,区分用于预订房间和降级订单形态。

最后,罗列一些留意事项。

在枚举类型中,枚举值必定为常量,因此必定所有大写。

枚举类具备与普通类相似的个性和方法,可裁减枚举的经常使用场景。

EnumMap和EnumSet中的元素顺序遵照枚举值的顺序。

经过正当运用枚举类型、枚举类、EnumMap和EnumSet,可以优化代码的可读性和可保养性。

总结,本文经过详细解说和实例展示,旨在协助读者把握Java中枚举类型、枚举类、EnumMap与EnumSet的经常使用方法和留意事项。

在实践名目中,灵敏运用这些概念,能够有效提高代码品质。

9、Java基础-枚举类

经常使用 enum 关键字定义的枚举类是 Java 中的一种不凡类,关键用于示意一组常量。

经常使用枚举类能够使代码愈加繁复、安保,并且易于保养。

枚举类的作用在于提供一组预约义的常量汇合,可以用于枚举变量的申明,使得变量的取值范畴在编译期就能被确定,从而防止了运转时意外的出现。

枚举类的特点包括:运转结果不会间接展现,但在代码中经常使用枚举类时,可以应用其提供的方法来失掉枚举值。

例如,可以经过枚举类对象的静态方法 T valueOf(); 依据枚举类Class和name值前往对应的枚举类值。

JVM 提供的静态方法,如 T[] values();,用于失掉枚举值汇合,只管 Enum 类并未提供此方法,但每个枚举类都有该方法,用于前往枚举值的数组。

枚举类关系汇合类的经常使用及成功原理如下:EnumMap 相似于 HashMap,但当 key 值为 Enum 类型时,EnumMap 的功能优于 HashMap。

其外部成功是经常使用两个等长数组,区分存储键值对的 key 和 value,确保键类型正确时,将值放入对应数组。

EnumSet 是用于寄存枚举汇合的类。

它是形象类,不能间接实例化。

只能经过 EnumSet 的静态方法来创立枚举类汇合。

外部成功依据枚举类值数量选用不同的成功,当数量大于 64 时创立 JumboEnumSet 对象,否则创立 RegularEnumSet 对象。

创立枚举汇合的静态方法包括但不限于:经常使用 EnumSet 的静态工厂方法来创立 EnumSet 实例。

这些方法提供了高效、安保的枚举汇合治理方式。

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

26阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

26阅读