枚举类型

07--swift之枚举

天涯浪子 提交于 2019-12-10 09:20:55
1. 枚举定义了一个通用类型的一组相关值,使你可以在你的代码中以一种安全的方式来使用这些值 2. 语法 enum 名称 { case 常量 case 常量 .... }或者写在一行,用逗号隔开 enum 名称 { case 常量 1 ,常量 2 ,常量 3 ...} enum Direction{ case east case west case south case north } print(Direction.east) enum e { case up,down,left,right } print(e.down) 3.enum 和 switch 联合使用 enum Direction { case east,west,north,south } var d = Direction.south switch d{ case Direction.east: print("east") case Direction.west: print("west") case Direction.north: print("north") case Direction.south: print("south") } 4. 关联值 枚举里面可以是整型,字符串,元组类型 enum state{ case status(Int,String) } var s = state.status(404

获取对象属性(所有属性、可枚举、不可枚举、自身属性【非原型链继承】)个数详解

微笑、不失礼 提交于 2019-12-09 22:31:39
一、获取可枚举的属性 方法一:for......in 方法一: Object.keys() Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 。 语法 Object.keys( obj ) 参数 obj:要返回其枚举自身属性的对象。 返回值 一个表示给定对象的所有可枚举属性的字符串数组。 例子 // simple array var arr = ['a', 'b', 'c']; console.log(Object.keys(arr)); // console: ['0', '1', '2'] // array like object var obj = { 0: 'a', 1: 'b', 2: 'c' }; console.log(Object.keys(obj)); // console: ['0', '1', '2'] // array like object with random key ordering var anObj = { 100: 'a', 2: 'b', 7: 'c' }; console.log(Object.keys(anObj)); // console: ['2', '7', '100'] // getFoo is a property

C#程序编写高质量代码改善的157个建议【4-9】[TryParse比Parse、使用int?来确保值类型也可以为null、readonly和const、0值设为枚举的默认值、避免给枚举类型的元素提供显式的值、习惯重载运算符]

两盒软妹~` 提交于 2019-12-09 17:31:14
建议4、TryParse比Parse好   如果注意观察,除string之外的所有的基元类型。会发现它们都有两个将字符串转换为自身类型的方法:Parse和TryParse。以类型double为例。 两者最大的区别是,如果字符串格式不满足转换的要求,Parse方法将会引发一个异常;TryParse方法则不会引发异常,它会返回false,同时将result置为0。 //Parse int a = int.Parse("123a"); //TryParse int x = 0; if (int.TryParse("12a3", out x)) { //转换成功,x=123 } else { //转换失败,x=0 } Parse转换失败会运行时报错 而TryParse转换失败返回false,将其赋值为0 TryParse和Parse两者都执行成功,那么TryParse的性能要比Parse性能稍微好一点,但是如果抛出异常,那么TryParse的性能比Parse提升了不少额。 不过这里并不建议为所有的类型都提供TryParse模式,只有在考虑到Parse会带来明显的性能损耗时,才建议使用TryParse。 建议5、使用int?来确保值类型也可以为null   基元类型为什么需要为null?需要考虑以下两个场景:   1、数据库中一个int字段可以被设置为null。在C#中,值被取出来后

枚举

无人久伴 提交于 2019-12-09 17:13:06
一、枚举 jdk1.5+ 使用它来汇总一些来表示同类含义的常量 枚举是引用数据类型,枚举类型的属性,赋值只能是枚举中声明过的常量 注意两个方法:name() ordinal() 使用方式 1.在枚举中声明多个常量,用逗号分隔 枚举作为引用数据类型,只能使用声明过的常量作为数据的值 2.可以在枚举中声明私有属性、私有构造方法、getters/setters方法 构造方法是私有的,只能在枚举内部使用(定义常量值时使用) 可以将多个表示相同含义属性的不同表现形式集合到一起 二、和工具类使用的区别 1.定义一个性别工具类 package org . jgs1904 . util ; /** * @ClassName SexUtil * @Description 性别工具类 * @Author RenYuWen * @Since 2019/12/9 12:00 */ public final class SexUtil { private SexUtil ( ) { } public static final char MALE = '男' ; public static final char FEMALE = '女' ; } 2.SexEnum性别枚举 package org . jgs1904 . enums ; /** * @ClassName SexEnum *

Java枚举

蹲街弑〆低调 提交于 2019-12-09 16:53:59
枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。 参考文章:https://www.cnblogs.com/alter888/p/9163612.html 枚举的定义和使用 public class EnumDemo { public static void main ( String [ ] args ) { //直接引用 Day day = Day . MONDAY ; } } //定义枚举类型 enum Day { MONDAY , TUESDAY , WEDNESDAY , THURSDAY , FRIDAY , SATURDAY , SUNDAY } 枚举的原理 实际上在使用关键字enum创建枚举类型并编译后,编译器会为我们生成一个相关的类,这个类继承了Java API中的java.lang.Enum类,也就是说通过关键字enum创建枚举类型在编译后事实上也是一个类类型而且该类继承自java.lang.Enum类。除此之外,编译器还帮助我们生成了7个Day类型的实例对象分别对应枚举中定义的7个日期,这也充分说明了我们前面使用关键字enum定义的Day类型中的每种日期枚举常量也是实实在在的Day实例对象

高度随着文字的多少而自适应

丶灬走出姿态 提交于 2019-12-08 03:48:59
视图的高度随着文字的多少而自适应的方法 //根据字符串计算高度方法: - ( CGFloat )getHeightLineWithString:( NSString *)string withWidth:( CGFloat )width withFont:( UIFont *)font { //最大允许绘制的文本范围 CGSize size = CGSizeMake(width, 2000 ); //配置计算时的行截取方法,和contentLabel对应 NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init]; [style setLineSpacing: 10 ]; //配置计算时的字体的大小 NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:style}; //如果想保留多个枚举值,则枚举值中间加按位或|即可,并不是所有的枚举类型都可以按位或,只有枚举值的赋值中有左移运算符时才可以 CGFloat height = [string boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin |

C++编程学习(四)声明/枚举

孤街醉人 提交于 2019-12-07 19:34:28
一、typedef 声明 typedef 为一个已有的类型取一个新的名字 typedef int num;//feet是int的另一个名字num a;//a是int类型二、枚举类型 enum color { red, green, blue } c; c = blue;//定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 "blue"。默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。 来源: https://www.cnblogs.com/JuiceCat/p/12003063.html

WordPress数据库结构

心不动则不痛 提交于 2019-12-07 18:58:44
WordPress仅仅用了10 个表:wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_term_relationships, wp_term_taxonomy, wp_terms, wp_usermeta, wp_users 按照功能大致分为 五类 用户信息: wp_users和wp_usermeta 链接信息: wp_links 文章及评论信息: wp_posts、wp_postmeta、wp_comments 对分类,链接分类,标签管理: wp_term,wp_term_relationships,wp_term_taxonomy 全局设置信息: wp_options wp_posts 博客发表”文章”存放的地方就是这个wp_posts表了。这个表里存放的除了普通的文章之外,还有附件和页面(page)的一些信息。post_type 字段是用来区分文章类型的。如果post_type是’post’,那么就是文章,如果是’page’,那么就是页面,如果是’attachment’, 那么就是附件了. wp_postmeta 这个表很简单,只有 meta_id, post_id, meta_key, meta_value 这四个字段。post_id 是相关 “文章” 的id。meta_value

iOS设计模式--迭代器模式

☆樱花仙子☆ 提交于 2019-12-07 08:44:45
何为迭代器模式? 迭代器提供了一种顺序访问集合对象中元素的方法,而无需暴漏结构的底层表示和细节。遍历集合中元素的职能从集合本身转移到迭代器对象。迭代器定义了一个用于访问集合元素并记录当前元素的接口。不同的迭代器可以执行不同的策略。 何时使用迭代器模式? @:需要访问组合对象的内容,而又不暴漏其内部表示。 @:需要通过多种方式遍历组合对象。 @:需要提供一个统一的接口,用来遍历各种类型的组合对象。 在Cocoa Touch框架中使用迭代器模式? 基础框架中的NSEnumerator类实现了迭代器模式。抽象NSEnumerator类的私有具体子类返回枚举器对象,能够顺序遍历各种集合——数组、集合、字典,把集合中的对象返回给客户端。 NSDirectoryEnumerator,这个类的实例递归枚举文件系统中一个目录的内容。NSArray、NSSet、NSDictionary这样的集合类,定义了返回与集合类型相应的NSEnumerator子类实例的方法。所有的枚举器都以同样的方式工作,可以在一个循环中向枚举器发送nextObject消息,从枚举器取得对象,直到它返回nil表示遍历结束。 1.NSEnumerator 我们可以使用NSEnumerator来枚举NSArray、NSDictionary和NSSet对象中的元素。NSEnumerator本身是个抽象类,它有依靠几个工厂方法

枚举转化成List及读取枚举Description属性值

你。 提交于 2019-12-06 14:15:30
1 public static class EnumHelper 2 { 3 /// <summary> 4 /// 获取枚举变量值的 Description 属性 5 /// </summary> 6 /// <param name="obj">枚举变量</param> 7 /// <param name="isTop">是否改变为返回该类、枚举类型的头 Description 属性,而不是当前的属性或枚举变量值的 Description 属性</param> 8 /// <returns>如果包含 Description 属性,则返回 Description 属性的值,否则返回枚举变量值的名称</returns> 9 public static string GetDescription(this object obj, bool isTop) 10 { 11 if (obj == null) 12 { 13 return string.Empty; 14 } 15 try 16 { 17 Type _enumType = obj.GetType(); 18 DescriptionAttribute dna = null; 19 if (isTop) 20 { 21 dna = (DescriptionAttribute)Attribute.GetCustomAttribute