swift的enum基础
其它语言的枚举:
符号化的整型常量的集合;
swift的枚举:
可以是任何基础类型和无类型;
If you are familiar with C, you will know that C enumerations assign related names to a set of integer values. Enumerations in Swift are much more flexible, and don’t have to provide a value for each case of the enumeration. If a value (known as a raw value) is provided for each enumeration case, the value can be a string, a character, or a value of any integer or floating-point type.
一、enum的类型:
enum defaultRawValue:String{}
enum TestEnum{
case goFun(para:String)
case doFun(para:String, para1:String)
}
二、rawValue:
具有类型的枚举对象具有rawValue;
数值类型的缺省值为:0、1 …
字符串类型的缺省rawValue为字符串本身;
三、具有关联值的枚举
- enum Barcode {
- case upc(Int, Int, Int, Int)
- case qrCode(String)
- }
“Define an enumeration type called Barcode, which can take either a value of upc with an associated value of type (Int, Int, Int, Int), or a value of qrCode with an associated value of type String.”
要区别枚举变量和关联值
枚举变量参与枚举运算;
关联值和rawvalue不参与。
四、枚举的初始化
1、非关联类型的枚举变量可以使用枚举值直接初始化;
2、有rawValue的枚举类型变量可以使用let possiblePlanet = Planet(rawValue: 7) 初始化;
3、有关联值的枚举值需要先对枚举值本身初始化,然后执行枚举变量初始化;
var productBarcode = Barcode.upc(8, 85909, 51226, 3)
五、枚举使用:
1、普通使用switch;
2、有关联值的使用:
- switch productBarcode {
- case let .upc(numberSystem, manufacturer, product, check):
- print("UPC : \(numberSystem), \(manufacturer), \(product), \(check).")
- case let .qrCode(productCode):
- print("QR code: \(productCode).")
- }
3、if语句使用(赋值):条件选择使用
if case let .stream(inputStream, _) = uploadable {
upload.delegate.taskNeedNewBodyStream = { _, _ in inputStream }
}
if case .pending = box.inspect() {
print("PromiseKit: warning: pending promise deallocated")
}
swift的enum基础的更多相关文章
- iOS开发swift语法0基础篇—————(swift技术交流群:361513739)
iOS开发之swift语法0基础篇:点击打开链接 swift技术交流QQ群361513739
- swift第一季基础语法
同: 一.基础 同: 1常量和变量 2数据类型和数据类型转换 3别名 不同: 1可选类型optional 2BOOL类型 3元组类型 4断言Assertion 二.基本操作符 同: 1赋值和算术运算及 ...
- Swift 学习- 02 -- 基础部分2
class NamedShape{ var numberOfSides: Int = 0 var name: String init(name: String) { self.name = name ...
- swift的enum模式—对Alamofire入口的解析--数据结构与操作结合的模式
swift的枚举模式是数据结构与操作结合的模式 1.enum本质是一个类型,可以定义变量: 它定义的变量可以用到其它变量用的的任何地方:函数的输入.输出.成员变量.临时变量等: 这个变量还可以带有附加 ...
- swift 第一课 基础知识-1
1. 基本的打印: print("这是学习 swift 的第一课") var varA = print("a 的值是 \(varA)") //注:字符串打印参数 ...
- Swift语言的基础详解
1.1.关于swift · Swift 是一种适用于 iOS 和 OS X 应用的全新编程语言,它建立在最好的 C 和 Objective-C 语言之上,并且没有 C 语言的兼容性限制.Swift 采 ...
- Swift的一些基础内容
//①判断字符串是否为空的方法 isEmpty var str:String = "www.baidu.com" if str.isEmpty { print("空字符串 ...
- Enum基础
enum ColorE { RED, GREEN, BLUE; } public class GetEnumContent { public static void main(Stri ...
- 对于Swift的Enum,文档上没有说的
今天无意发现一个东西, 但是在文档上看了很多遍都没找到, 但是亲测是可行的, 那到底是什么呢? 以前我们定义枚举 会这样: enum Hello { case Item( String, Int) c ...
随机推荐
- MVC初级教程(四)
演示产品源码下载地址:http://www.jinhusns.com/Products/Download
- 利用CEF山寨一个翻译器
起因 在某些情况下,有将从某种类型的语言翻译成另一种类型语言的需求.比如在生成实体时,可能需要将中文名称转换成英文.于是利用CEFSharp山寨了一个翻译器.效果图如下: CEF简介 CEF全称为Ch ...
- JAVA基础之——三大特征、接口和抽象类区别、重载和重写区别、==和equals区别、JAVA自动装箱和拆箱
1 java三大特征 1)封装:即class,把一类实体定义成类,该类有变量和方法. 2)继承:从已有的父类中派生出子类,子类实现父类的抽象方法. 3)多态:通过父类对象可以引用不同的子类,从而实现不 ...
- hdu 1828 Picture 切割线求周长
Picture Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- Javascript中的bind详解
前言 用过React的同学都知道,经常会使用bind来绑定this. import React, { Component } from 'react'; class TodoItem extends ...
- CSS预编译器:Sass(进阶),更快的前端开发
1.@if @if 指令是一个 SassScript,它可以根据条件来处理样式块,如果条件为 true 返回一个样式块,反之 false 返回另一个样式块 在 Sass 中除了 @if 之,还 ...
- FFmpeg实现将图片转换为视频
##名称:ffmpeg实现将图片转换为视频 ##平台:ubuntu(已经安装好了ffmpeg工具) ##日期:2017年12月10日 简介: 因为学习需要,需要将连续图片转换成视频,昨天和今天早上用o ...
- 神奇的负Margin
在做slide时候一般都是采用父元素超宽+overflow的做法,今天发现了用margin-right:-100%;可以让子元素全部重叠起来.效果也是不错的
- 无锁HashMap的原理与实现
转载自: http://coolshell.cn/articles/9703.html 在<疫苗:Java HashMap的死循环>中,我们看到,java.util.HashMap并不能直 ...
- 关于3d打印
3d打印技术是20世纪90年代逐渐兴起的一项先进的制造技术.3D打印——three-dimensional printing,简称3dp.又称三维打印或立体打印,最早由美国麻省理工学院于1993年开发 ...