博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
枚举的非连续原始值
阅读量:7060 次
发布时间:2019-06-28

本文共 766 字,大约阅读时间需要 2 分钟。

作者:Erica Sadun,,原文日期:2017-01-30

译者:;校对:;定稿:

近来发现了一个我一直不知道的 Swift 神奇特性。众所周知,可以创建一个这样的原始值 (raw value) 枚举:即每个枚举成员的原始值皆可以自动递增。

enum MyEnumeration: Int {   case one = 1, two, three, four}MyEnumeration.three.rawValue // 3

此外我们还可以手动编排原始值枚举的值:

enum MyEnumeration: Int {    case one = 1, three = 3, five = 5}

然而, 我并不知道可以在同个枚举声明中将两者!(虽然,对于有标准规定的数值而言,不应该写类似下面示例的代码)

enum HTTPStatusCode: Int {    // 100 Informational    case continue = 100    case switchingProtocols    case processing    // 200 Success    case OK = 200    case created    case accepted    case nonAuthoritativeInformation}HTTPStatusCode.accepted.rawValue // 202

这个特性是不是很酷啊?

我可能会将此方法应用于带有偏移量的值当中(例如「从 1 开始」),此外这个值本身也不应存有既定语义。正如 Kristina Thai ,跳过有意义的值并不能改善可读性,也不便我们进行语义检查。

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 。

转载地址:http://qifll.baihongyu.com/

你可能感兴趣的文章
实现上一篇,下一篇的效果
查看>>
ROS中的通信机制
查看>>
查询表达式和LINQ to Objects
查看>>
Jmeter(七)关联之JSON提取器
查看>>
2017-2018-2 《网络攻防》第四周作业
查看>>
Java学习之Iterator(迭代器)的一般用法 (转)
查看>>
heat map fusionchats 从后台动态获取数据
查看>>
级联下拉框效果 Jquery
查看>>
简单I/O
查看>>
查看系统日志
查看>>
js面向对象系列——关系图
查看>>
Lua模块的加载与内存释放
查看>>
cocos2d JS-(JavaScript) 冒泡排序
查看>>
第一章总结
查看>>
程序员必知的8大经典内部排序---java版
查看>>
实验四
查看>>
javaScript如何监听浏览器关闭事件
查看>>
设备加速传感器(accelerometer) ---- HTML5+
查看>>
KRKR基础篇(二)
查看>>
kafka伪分布式安装(2.12版)
查看>>