001-枚举

//枚举 swift 中不会被赋于默认的整型值
enum someEnumeration {case northcase sourthcase eastcase west
}
//多个成员值要写在一行,用逗号隔开
enum Planet {case mercury,earth,mars
}
var directionHead = someEnumeration.westdirectionHead = .east//使用Switch匹配单个的枚举值switch directionHead {case .north:print("north")case .sourth:print("sourth")case .west:print("west")case .east:print("east")default:print("None Of This Direction")}

//枚举关联值

enum BarCode {case upc(Int,Int,Int,Int) //根据数字识别商品case qrCode(String)       //根据代码识别商品
}//创建一个条形码var productBar = BarCode.upc(8, 8, 3, 4)productBar = .qrCode("ABCDE")//upc被qrCode代替

//枚举原始值

//枚举的原始值 隐士赋值
enum ASCIIControlChar : Character {case tab = "\t"case lineFeed = "\n"case carriageReturn = "\r"
}
//字符串的默认值是枚举值本身
enum Planet:Int{case mercury = 1,venus,earth,mars
}
//获取枚举变量的原始值let earthOrder = Planet.earth.rawValueprint(earthOrder)//输出结果为 3

//枚举递归

//枚举递归
indirect enum Arithmetic {case number(Int)case addition(Arithmetic,Arithmetic)case multiplication (Arithmetic,Arithmetic)
}//创建一个枚举递归表达式let five = Arithmetic.number(5)let four = Arithmetic.number(4)let sum = Arithmetic.addition(five, four)let product = Arithmetic.multiplication(sum, five)// (5+4) * 5print(product)

//类

//类的声明:
class Student{var name:String = ""var age:Int = 18
}
//访问属性classItem.name = "小子"print(classItem.name)//小子

//结构体

//结构体
struct teacher {var name:String = ""var age:Int = 20
}
let myTeacher = teacher()print(myTeacher)//teacher(name: "", age: 20)

属性

//存储属性 (变量和常量)
class Student {var name:String = ""var age:Int = 10
}
class newClass {//lazy var name = "小名" //懒加载属性var lastName = "小小"var firstName = "苏"var name:String{get {return firstName + lastName}}
}
class StepCount {var examplePro:Int = 10 {willSet (newTotal){//在属性更改之前做的操作print("新值是\(newTotal)")}didSet {//在属性更改之后做的操作print("新值-旧值\(examplePro-oldValue)")}}
}

//调用:

var allName = newClass()print(allName.name) //苏小小//只读属性只能用var来描述let stepCount = StepCount()
stepCount.examplePro = 200
//新值是200
//新值-旧值190

转载于:https://www.cnblogs.com/StevenHuSir/p/Swift_Enum.html

Swift-类、结构体、枚举相关推荐

  1. 结构体+枚举+联合体

    结构体+枚举+联合体 结构体 结构体的声明 结构体的嵌套+链表 结构体变量的初始化 结构体的内存对齐 一.首先得掌握结构体的对齐规则 二.一些具体的例子 为什么存在内存对齐? 位段 位段的内存保存 枚 ...

  2. iOS(OC、swift) 结构体和类的区别

    OC: 相同点:都可以将多个数据封装为一个整体. 不同点: 1. 结构体只能封装数据,而类还可以封装行为. 2. 赋值 :结构体是(拷贝),对象之间是(地址) 3. 结构体变量分配在栈空间(如果是一个 ...

  3. Swift Struct结构体

    一天一步,快乐前进: 结构体: 结构体就是结构化程序的产物.结构体是由另个或多个类型相同或者不同的数据组成的数据集合,其中的数据或者方法被称为它的成员或成员方法.结构体的成员可以包括属性,类型别名.数 ...

  4. C# 结构体 枚举类型

    注意:枚举类型和结构体都属于值类型. 结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 一.定义的方法: struct student { public int nianl ...

  5. 【2017-3-2】集合 结构体 枚举

    (一)集合 1.定义:不同类型,不固定长度. 要使用集合,必须先引用命名空间,using System.Collections: ArrayList  变量名 = new ArrayList(); - ...

  6. 【结构体——枚举——联合】

    文章目录 前言 结构体 结构体类型的声明 结构的自引用 结构体变量的定义和初始化 结构体内存对齐 修改默认对齐数 结构体传参 结构体实现位段(位段的填充&可移植性) 枚举 枚举类型的定义 枚举 ...

  7. swift_018(Swift 的结构体)

    //***********swift学习之18--结构体--*************************** // Swift 结构体是构建代码所用的一种通用且灵活的构造体. // 我们可以为结 ...

  8. 黑马程序员--typedef关键字和结构体 枚举类型

    typedef 关键字: typedef int MyTnt;  //给int 提供一个别名 typedef MyInt MyInt2; typedef (char *) String 结构体: st ...

  9. C/C++计算类/结构体和联合体(union)所占内存大小(内存对齐问题)

    目录 一,内存对齐的三条规则 二,注意事项: 三,举例说明 1,示例1 2,示例2 3,示例3 4,示例4 四,联合体(union) 五,字节对齐的原因 六,计算练习 一,内存对齐的三条规则 数据成员 ...

  10. 【C语言】自定义类型 结构体 枚举 联合

    结构体的基础知识 结构体是一些值的集合,这些值称为成员变量.结构体的每个成员可以是不同类型的变量. 结构体的声明 定义一个学生的结构体 struct Stu {char name[20];//名字in ...

最新文章

  1. eip协议通信_3月免费公开课伺服、通信等课程重磅发布,火热报名中
  2. python 图像分割_Python怎么实现图片分割?
  3. IBM服务器raid5崩溃数据恢复方案及过程
  4. 推荐:介绍一个UndoFramework
  5. 整型转化 血泪的教训
  6. python爬虫小工具——editplus
  7. Docker学习一:Docker简介与安装
  8. HDU4026 Unlock the Cell Phone [状态压缩DP]
  9. emacs VS vim 替换为回车符
  10. JavaScript语言核心(五)-- 异步 async/await
  11. 电脑记事本在哪个文件夹
  12. 资深3D角色建模师对于游戏角色设计浅析:细节与风格
  13. 做企业要有磨刀不误砍柴工的精神
  14. phpcms v9文件上传的四次绕过复现
  15. java spel_Java spring SPEL表达式注入
  16. 后端编译与优化(JIT,即时编译器)
  17. oracle审计查询sql语句,Oracle 数据库审计
  18. 麻烦攻克食材串味难题!保姆级除味妙招请查收
  19. 线性代数之矩阵的属性和运算
  20. CUDA10 下载百度云 cuDnn下载(Windows版 )

热门文章

  1. codevs 4650 破损的键盘(链表)
  2. Hadoop! | 大数据百科 | 数据观 | 中国大数据产业观察_大数据门户
  3. 进程外Session保存和全局文件错误捕获
  4. POJ2104 K-th number 函数式线段树
  5. 线性表的顺序表示以及实现
  6. 速度提升一倍,无需实例掩码预测即可实现全景分割
  7. 综述 | Google-斯坦福发布~深度学习统计力学
  8. 关于文件整理的一些心得
  9. oracle中sql语句排序,Oracle SQL排序方式与case语句
  10. android开发 视图联动_android开发_ViewGroup(组视图)-- 五大布局