swift 枚举

摘要:
当整数值用于原始值时,如果其他枚举成员没有值,它们将自动递增。对于特定枚举成员,其原始值始终相同。EnumCompassPoint{caseNorthcaseSouthcaseEastcaseWest}与C和Objective-C不同,Swift枚举成员在创建时不会被分配默认整数值。在上面的CompassPoint示例中,North、South、East和West不隐式等于0、1、2和3。相反,这些不同的枚举成员在CompassPoint显示定义中具有不同的值。与Swift中的其他类型一样,它们的名称必须以大写字母开头。
枚举

枚举不是类型..而是值.枚举定义了一个通用类型的一组相关的值 什么时候用枚举?
一组通用类型,用枚举..需要存储可能会改变的数据使用相关值..存储唯一且不变的值使用原始值
通用类型:
方向 : 枚举成员类型本身就不同..所以不需要值
码,条形码,二维码:都是码,枚举成员类型不同,但需求每个码中存储值...相关值

枚举的值:
1.可以再枚举中存储可以改变的相关值..
2.枚举成员可以被默认值(称为原始值)预先填充,其中这些原始值具有相同的类型。每个原始值在它的枚举声明中必须是唯一的。当整型值被用于原始值,如果其他枚举成员没有值时,它们会自动递增。
原始值和相关值是不相同的。当你开始在你的代码中定义枚举的时候原始值是被预先填充的值,像上述三个 ASCII 码。 对于一个特定的枚举成员,它的原始值始终是相同的。 相关值是当你在创建一个基于枚举成员的新常量或变量时才会被设置,并且每次当你这么做得时候,它的值可以是不同的。
enum CompassPoint {
  case North
  case South
  case East
  case West
}

不像 C 和 Objective-C 一样,Swift 的枚举成员在被创建时不会被赋予一个默认的整数值
。在上面的CompassPoints例子中,North,South,East和West不是隐式的等于0,1,2和3。
相反的,这些不同的枚举成员在CompassPoint的一种显示定义中拥有各自不同的值。
每个枚举定义了一个全新的类型。像 Swift 中其他类型一样,它们的名字(例如CompassPoint和Planet)必须以一个大写字母开头。
给枚举类型起一个单数名字而不是复数名字
directionToHead的类型被推断为CompassPoint的一个可能存在的类型,值为该枚举类型的值.当被定义后,可以使用.+枚举类型.进行修改其类型

var directionToHead = CompassPoint.West  //CompassPoint?
directionToHead = .East


//相关值
enum Barcode {
  case UPCA(Int, Int, Int)
  case QRCode(String)
}
var productBarcode = Barcode.UPCA(8, 85909_51226, 3)
productBarcode = .QRCode("ABCDEFGHIJKLMNOP")


//原始值
enum ASCIIControlCharacter: Character {
    case Tab = "	"
    case LineFeed = "
"
    case CarriageReturn = "
"
}
enum Planet: Int {
    case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}

免责声明:文章转载自《swift 枚举》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇计算机网络基本知识Ueditor 1.4.3.1 使用 ThinkPHP 3.2.3 的上传类进行图片上传下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Task Scheduler 介绍

Task Scheduler 的描叙:使用户可以在此计算机上配置和计划自动任务,此服务还托管多个Windows系统关键任务。如果此服务被停止或禁用,这些任务将无法再按计划的时间运行。如果此服务被禁用,则明确依赖它的所有服务将无法启动。这个命令有点类似于Linux下的crontab 等后台命令。可以通过它在Window 平台自动备份数据库等任务。这个命令依赖...

枚举值使用小结

枚举值绑定到下拉框: 方法一: 绑定 enum TestEnum {zero=0,one=1,two=2}       ComboBox cbo = new ComboBox(); cbo.DataSource = System.Enum.GetNames(typeof(TestEnum)); enum test=enum.one; cbo.Selecte...

js中的枚举

在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等 1.for…in循环可以枚举(遍历)出对象本身具有的属性,通过Object.defineProperty()方...

java~使用枚举来实现接口的多态

java的enum类型,与C#不一样,它就是一个类,它可以实现接口,并且,可以通过的不同的枚举值来实现一个接口,这就是枚举的多态性。 下面的例子,在Hello接口有方法print,在枚举Strategy中,通过不同的枚举值分别实现了Hello接口,如下代码 enum Strategy implements Hello { CHINA()...

springboot mybatis自定义枚举enum转换

原文链接:https://blog.csdn.net/u014527058/article/details/62883573 一、概述 在利用Spring进行Web后台开发时,经常会遇到枚举类型的绑定问题。一般情况下,如果Spring接收到的参数值为字符串类型,Spring会根据枚举的值与传入的字符串进行对应。假设有如下枚举 清单1:枚举定义 public...

Java枚举的小知识点

enum 是jdk1.5引入的,使用它可以创建枚举类型,就像使用class创建类一样。 enum关键字创建的枚举类型默认是java.lang.Enum(一个抽象类)的子类 用法1 常量一般定义常量都是 public static final …,现在可以把相关常量都放在一个枚举类里,而且枚举比常量提供更多方法 enum season{    Sp...