首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏浮躁的喧嚣

    swift 枚举(枚举关联枚举原始、递归枚举等)

    Swift 枚举可以用来存储任意类型的关联 声明存储不同类型关联枚举成员(这个定义不提供任何Int或String类型的关联) 一个成员是(Int,Int,Int)类型关联的num 一个成员是 , let str2): print("\(str1),\(str2)") } //如果枚举的所有关联都被提取为常量或者变量,则可以在前面放置单个var或let注释,以简洁起见 switch print("\(str1),\(str2)") } 原始 枚举成员可以设置原始,这些原始的类型必须相同 enum Season:String { case spring = " 原始是在定义枚举时被预先填充的。对于一个特定的枚举成员,它的原始始终不变。关联是创建一个基于枚举成员的常量或变量时才设置的枚举成员的关联可以变化。 ) 使用原始初始化枚举实例 可以通过rawValue初始化一个枚举成员,返回则是枚举成员或nil 可以通过这个来判断这个新枚举成员是否在枚举中 enum Season:Int { case

    1K10编辑于 2023-11-22
  • 来自专栏全栈程序员必看

    怎么获取枚举_枚举类型吗

    最近在做一个学校的系统,其中用到一些枚举,可是在显示下拉列表时要绑定枚举的描述及其枚举时就只一个一个的默认设死,这样不灵活。有没有其快捷方法? 搜了下百度很多相关资料有了些许眉目,代码如下 1.首先定义枚举,这里要做显示学生状态的列表,如下所示 1 ///

    2 /// 学生状态 3 /// 4 16 Graduate = 1, 17 18 /// 19 /// 退学 20 /// 21 [Description("退学")] 22 Leave = 2, 23 24 /// 25 /// 休学 26 /// 27 [Description("休学")] 28 Suspend = 3 29 } 2.循环取枚举属性 ,Enum.GetNames这个方法是获取枚举定义的属性(如Study),Enum.GetValues这个方法是获取枚举定义的属性(如0) 1 foreach (var em in Enum.GetNames

    5.8K30编辑于 2022-09-20
  • 来自专栏IT开发技术与工作效率

    带描述枚举获取枚举实例

    import java.util.LinkedHashMap; /** * 是否 * 1-是 0-否 *
    表.字段 *
    table.column */ public enum YesOrNoEnum { /** 1-是 */ YES("1", "是"), /** 0-否 */ NO("0", "否"), ; public final String value; public final String desc;

    1.9K30发布于 2020-06-02
  • 来自专栏C/C++

    CC++获取枚举名称

    首先,COLOR_ENUM宏定义了一个枚举列表模板,这是一个X宏技巧,它允许我们用不同的方式重用同一个枚举列表。 #define COLOR_ENUM(X) \ X(RED) \ X(GREEN) \ X(BLUE)2 DECLARE_ENUM宏用于生成枚举定义 case BLUE: return "BLUE"; default: return "UNKNOWN"; }}这种实现的优点是:维护方便:只需要在COLOR_ENUM宏中添加或删除枚举 ,所有相关代码都会自动更新避免重复:不需要手动维护枚举和字符串的对应关系编译时检查:如果漏掉了某个枚举,编译器会给出警告性能好:使用switch语句比查表更快内存效率高:字符串直接存储在代码段,不需要额外的运行时数据结构缺点是 :宏的使用使代码不太直观调试时可能不太方便,因为需要查看预处理后的代码所有枚举必须在同一个地方定义

    74910编辑于 2025-03-26
  • 来自专栏深蓝居

    如何使用枚举的组合

    有时我们需要将枚举定义为1,2,4,8.......的,这样当传入一个3,那么就是表示1,2的组合,如果传入7,那就表示1,2,4的组合。要实现这种功能我们需要用到FlagsAttribute。 [Flags] public enum FormType {     Reimburse=,     Payment=,     Precharge=,     PO= } 2.组合枚举的判断         {             Console.WriteLine("PO");         }         Console.WriteLine("End");     } 3.生成组合枚举

    4.9K30编辑于 2022-06-16
  • 来自专栏韦弦的偶尔分享

    Objective-C 枚举注释

    枚举特别多的时候,想每一个枚举都具体注释提示的话,就只能在每个枚举上一行加上/// ···或/** ··· */,但是会让代码显得不整齐(可能是我强迫症?) ,如果需要给每个枚举增加一个简短的注释,并且在使用的时候有注释提示可以这样写。 - 带提示代码后单行注释 ://!< ··· 或多行注释: /**< ··· */和 /*! < ··· */ /// 测试枚举 typedef NS_ENUM(NSUInteger, ZYTestType) { ZYTestTypeA, //! < 类型C */ }; 枚举注释 这种注释方法,同样适合类的属性注释或者结构体属性注释。 #pragma mark - 生命周期 //可用这个创建自定义代码块 #pragma mark - <#注释#> mark1 同时在新的 Xcode 的 MiniMap 中也能直接看到注释 mark2

    1.7K20发布于 2020-04-14
  • 来自专栏.Net Core技术分享

    枚举转换(字符串转换为枚举和整数转换为枚举

    假设定义了一个这样的枚举类型: enum MyEnum { aa = 1, bb = 2 } 1、字符串转换为枚举: string strA = "aa"; MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), strA); 上面的方法是区分大小写的,也就是说,如果strA的为“AA strA = "aa"; MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), strA, true); 当最后一个参数设置为true时忽略大小写 2、 整数转换为枚举 int iA = 2; MyEnum myEnum = (MyEnum)iA; 这种方法可以将一个整数转换为枚举类型;如果iA不是一个有效的枚举,则转换失败。

    4.6K30发布于 2019-09-26
  • 来自专栏TechFlow

    EasyC++14,枚举的使用

    这是EasyC++系列的第14篇,咱们来聊聊C++当中的枚举枚举 简介 C++当中提供了枚举操作,我们可以使用enum关键字创建枚举类型。 ,而之后从orange开始,依次赋值成2,3,4. 枚举的取值范围 前文说了,只有声明中的枚举是有效的,然而由于C++允许使用强制转换转换成枚举,所以理论上枚举取值范围内的都可以被转换成枚举,虽然这些在逻辑上不一定有意义。 对于枚举变量来说,它的范围并不是固定的,而是根据定义情况波动的。C++会根据枚举声明的情况计算上限和下限,只能允许在范围内的整型强制转化为枚举。 enum flag {black = 1, white = 2, red = 23}; C++采取的是最小长度的方式,比如说我们上面定义的枚举最大的是23,它会计算出大于23的最小2的幂,也就是32

    1.1K10编辑于 2022-08-26
  • 来自专栏飞扬的花生

    c#枚举的描述和

    (string[] args) { TestEnum testEnum = TestEnum.one; // 获取枚举的描述 string thisValue = FetchDescription(testEnum); //获取枚举 } public enum TestEnum { [Description("大家好我是描述")] one = 1, two = 2,

    1.4K30发布于 2018-05-28
  • 来自专栏码农沉思录

    枚举很好用啊,为啥阿里不建议返回枚举

    从手册可以看出,定义和使用枚举,阿里开发手册都是支持的,但是为啥,返回就要反对了呢? 看看作者孤尽是怎么说的 由于升级原因,导致双方的枚举类不尽相同,在接口解析,类反序列化时出现异常。 可是为什么在返回和参数进行了区分呢,如果不兼容,那么两个都有问题,怎么允许参数可以有枚举。当时的考虑,如果参数也不能用,那么枚举几乎无用武之地了。 但如果是接口返回,就比较恶心了,因为解析回来的这个枚举,可能本地还没有,这时就会抛出序列化异常。 返回:Weather guess(参数),那么对方运算后,返回一个SNOWY,本地枚举里没有这个,傻眼了。 不过,另一位网友Brian的回答也很通俗易懂 枚举,就是把已知的全部罗列出来。 库版本升级后我支持了更多,你不知道情况下自然不会使用,反正我不支持的参数你不可能传递给我,所以作为输入,枚举简直就是安全保障。但作为返回,情况就反过来了。

    2.5K20发布于 2020-02-11
  • 来自专栏全栈程序员必看

    Java中怎样由枚举常量的ordinal获得枚举常量对象

    WINTER } 就定义了一个季节枚举类型。 也就是说,使用name()方法和valueOf(String)方法能够在枚举类型对象和字符串之间方便得转换。 Enum类提供了一个ordinal()方法,用来返回枚举对象的序数,比方本例中SPRING, SUMMER, AUTUMN, WINTER的序数就分别为0, 1, 2, 3。 对于这个问题,实际上能够利用枚举类型的values()方法间接的做到。values()方法返回一个枚举对象数组,比方本例就是Season[],数组元素依照序数排列。 在自己定义的枚举类型中,我们仅仅要定义自己的valueOf(int)方法,并返回该数组下标对象的对象就能够了。

    2.8K10编辑于 2022-07-14
  • 来自专栏芋道源码1024

    枚举很好用啊,为啥阿里不建议返回枚举

    我们先来看看阿里开发手册关于枚举使用的建议 ? 从手册可以看出,定义和使用枚举,阿里开发手册都是支持的,但是为啥,返回就要反对了呢? 可是为什么在返回和参数进行了区分呢,如果不兼容,那么两个都有问题,怎么允许参数可以有枚举。当时的考虑,如果参数也不能用,那么枚举几乎无用武之地了。 但如果是接口返回,就比较恶心了,因为解析回来的这个枚举,可能本地还没有,这时就会抛出序列化异常。 返回:Weather guess(参数),那么对方运算后,返回一个SNOWY,本地枚举里没有这个,傻眼了。 不过,另一位网友Brian的回答也很通俗易懂 枚举,就是把已知的全部罗列出来。 提供近 2W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

    2.3K20发布于 2019-12-24
  • 来自专栏centosDai

    CA1069:枚举不得具有重复

    规则 ID CA1069 类别 设计 修复是中断修复还是非中断修复 重大 原因 枚举具有多个成员,这些成员显式分配有相同常数值。 规则说明 每个枚举成员都应具有唯一的常数值,或者为其显式分配枚举中的前一个成员以指示共享的明确意图。 复制粘贴错误:用户复制了一个现有成员定义,然后重命名了该成员,但忘记更改。 合并多个分支中的解决方案:在不同分支中添加了具有不同名称但有相同的新成员。 如何解决冲突 若要解决冲突,请分配新的唯一常数值,或分配枚举中的前一个成员以指示共享同一的明确意图。 = 2, Field3 = 2, // CA1069: This is not fine.

    3300编辑于 2022-02-22
  • 来自专栏stcnb

    CA1069:枚举不得具有重复

    规则 ID CA1069 类别 设计 修复是中断修复还是非中断修复 重大 原因 枚举具有多个成员,这些成员显式分配有相同常数值。 规则说明 每个枚举成员都应具有唯一的常数值,或者为其显式分配枚举中的前一个成员以指示共享的明确意图。 复制粘贴错误:用户复制了一个现有成员定义,然后重命名了该成员,但忘记更改。 合并多个分支中的解决方案:在不同分支中添加了具有不同名称但有相同的新成员。 如何解决冲突 若要解决冲突,请分配新的唯一常数值,或分配枚举中的前一个成员以指示共享同一的明确意图。 = 2, Field3 = 2, // CA1069: This is not fine.

    91820编辑于 2022-01-11
  • 来自专栏stcnb

    CA1008:枚举应具有零

    规则 ID CA1008 类别 设计 修复是中断修复还是非中断修复 非中断 - 如果系统提示你向无标志枚举添加 None 。 中断 - 如果系统提示你重命名或删除任何枚举。 或者,枚举定义多个零成员。 默认情况下,此规则仅查看外部可见的枚举,但这是可配置的。 规则说明 像其他类型一样,未初始化枚举的默认为零。 无标志特性的枚举应定义为零的成员,这样默认即为该枚举的有效。 如果可行,请将成员命名为“None”。 否则,将零赋给最常使用的成员。 默认情况下,如果未在声明中设置第一个枚举成员的,则其为零。 如果应用了 FlagsAttribute 的枚举定义为零成员,则该成员的名称应为“None”,以指示枚举中尚未设置。 ”枚举 CA1712:不要将类型名用作枚举的前缀 CA1028:枚举存储应为 Int32 CA1027:用 FlagsAttribute 标记枚举 另请参阅 System.Enum

    80820编辑于 2022-01-10
  • 来自专栏centosDai

    CA1700:不要用“Reserved”命名枚举

    规则 ID CA1700 类别 命名 修复是中断修复还是非中断修复 重大 原因 枚举成员的名称包含单词“reserved”。 在将来的版本中,向枚举添加新成员,而不是使用预留成员。 在大多数情况下,只要添加新成员不会导致原始成员的发生变化,添加新成员就不是一项中断性变更。 在少数情况下,添加成员是一项中断性变更,即使原始成员保留其原始也是如此。 主要问题是,如果不中断对包含整个成员列表的返回使用 switch(在 Visual Basic 中为 Select)语句并且在默认情况下引发异常的调用方,则不能从现有代码路径返回新成员。 CA1712:不要将类型名用作枚举的前缀 CA1028:枚举存储应为 Int32 CA1008:枚举应具有零 CA1027:用 FlagsAttribute 标记枚举

    73900编辑于 2022-02-18
  • 来自专栏Go工具箱

    Go 100 mistakes之如何正确设置枚举中的零

    我们知道,在Go中会给定义的变量一个默认,比如int类型的变量默认是0。我们在定义枚举时,往往也会从0开始定义。本文就解释如何区分是显示指定了变量的0还是因为确实字段而得到的默认。 我们创建Weekday类型的枚举的方法是比较合适的。 << (10 * 1) ③ 在这一行,iota等于2,本行将会重复上一行的表达式,因此 MB 被设置成了 1 << (10 * 2) Go中Unknow 的处理 既然我们已经理解了在Go中处理枚举的原理 这个问题和我们定义Weekday枚举的方式有关。实际上,Unknown是枚举的最后一个。因此,它的应该等于7. 根据经验,枚举的未知应该设置为枚举类型的零。这样,我们就可以区分出显示和缺失值了。

    5.6K10编辑于 2023-01-31
  • 来自专栏centosDai

    CA1700:不要用“Reserved”命名枚举

    规则 ID CA1700 类别 命名 修复是中断修复还是非中断修复 重大 原因 枚举成员的名称包含单词“reserved”。 在将来的版本中,向枚举添加新成员,而不是使用预留成员。 在大多数情况下,只要添加新成员不会导致原始成员的发生变化,添加新成员就不是一项中断性变更。 在少数情况下,添加成员是一项中断性变更,即使原始成员保留其原始也是如此。 主要问题是,如果不中断对包含整个成员列表的返回使用 switch(在 Visual Basic 中为 Select)语句并且在默认情况下引发异常的调用方,则不能从现有代码路径返回新成员。 CA1712:不要将类型名用作枚举的前缀 CA1028:枚举存储应为 Int32 CA1008:枚举应具有零 CA1027:用 FlagsAttribute 标记枚举

    2900编辑于 2022-02-18
  • 来自专栏centosDai

    CA1700:不要用“Reserved”命名枚举

    规则 ID CA1700 类别 命名 修复是中断修复还是非中断修复 重大 原因 枚举成员的名称包含单词“reserved”。 在将来的版本中,向枚举添加新成员,而不是使用预留成员。 在大多数情况下,只要添加新成员不会导致原始成员的发生变化,添加新成员就不是一项中断性变更。 在少数情况下,添加成员是一项中断性变更,即使原始成员保留其原始也是如此。 主要问题是,如果不中断对包含整个成员列表的返回使用 switch(在 Visual Basic 中为 Select)语句并且在默认情况下引发异常的调用方,则不能从现有代码路径返回新成员。 CA1712:不要将类型名用作枚举的前缀 CA1028:枚举存储应为 Int32 CA1008:枚举应具有零 CA1027:用 FlagsAttribute 标记枚举

    2200编辑于 2022-02-23
  • 来自专栏Hongten

    J2SE 枚举类型

    work(Week.SUN);   System.out.println("*****************************");   System.out.println("得到Week枚举类型中每个常量的常量值 *************Hongten************************* 运行效果: Have a Rest ***************************** 得到Week枚举类型中每个常量的常量值 0 1 2 3 4 5 6 ***************************** 大家辛苦了,请努力工作!

    40120发布于 2018-09-13
领券