Swift面向对象基础(上)——Swift中的枚举

简介:

Swift中枚举

学习笔记来自《极客学院》

复制代码
 1 import Foundation
 2  3 /**********1*Swift定义枚举的语法格式*************/  4 /*  5 enum 枚举名 {
 6  使用case关键字列出所有枚举值
 7  枚举的其他成员
 8 }
 9 */ 10 //定义枚举 11 enum Season{
12 case Spring
13 case Summer
14 case Fall
15 case Winter
16 }
17 //使用一个case列举所有的值 18 enum Season2{
19 case Spring,Summer,Fall,Winter
20 }
21 //使用枚举声明变量 22 var weather : Season//这里就是声明一个Season 类型的变量weather 23 weather = .Summer//或者是:weather = Season.Summer 24 println("1:\(weather)")
25 26 var enum_1 = Season.Winter//直接用类型推断也可以 27 switch(enum_1){
28 case .Spring:
29  println(Season.Spring)
30 case .Summer:
31  println(Season.Summer)
32 default:
33 println("在家里")
34 }//switch中的case没有覆盖枚举的所有值,必须添加default语句,也就是说如果列出了枚举所有的值,就可以删掉default语句了 35 36 37 /**********2*原始值*************/ 38 /* 39 enum 枚举值 : 原始值类型{
40  case 枚举值 = 原始值
41 }
42 */ 43 enum Weekday : Int{
44 case Mon,Tur,Wen = 4,Thur,Fri,Sat,Sun
45 }//因为这里都是整形所以会自动推断他们分别是1~7 46 println(Weekday.Wen)//不知道结果为甚是这样的:(Enum Value)
47 48 //所以获取枚举的 原始值 49 println(Weekday.Mon.rawValue)
50 println(Weekday.Tur.hashValue)
51 52 enum Season3 : Character{
53 case Spring = "" 54 case Summer = "" 55 case Fall = "" 56 case Winter = "" 57 }//但是上面类型的推断仅仅局限在整型的情况下,swift会自动推断
58 59 //根据原始值来获取枚举值,调用的事构造器,这个构造器是可选类型:init?(rawValue:) 60 var mySeason = Season3(rawValue: "")
61 if mySeason != nil{
62 switch(mySeason!){//需要间接解包 63 case .Spring:
64 println("春天不是读书天")
65 case .Summer:
66 println("夏天炎炎正好呢")
67 case .Fall,.Winter: //这里表示“或” 68 println("秋多蚊蝇冬日冷")
69 default:
70 println("读书只好等明年")
71  }
72 }
73 74 75 /**********3*关联值*************/ 76 //在每个枚举值后面添加括号扩起来的关联值,然后关联值个数是0~多个,然后定义类型值,当然也可以仅仅只有类型,不需要关联值名称 77 enum Planet {
78 case Earth(weight: Double,name: String)
79 case Mars(density: Double,name:String,weight:Double)
80 case Venus(Double,String)
81 case Saturn
82 case Neptune
83 }//其实这后面括号扩起来的就是元祖
84 //获取枚举值,系统还会自动提示,这个操作一下就能明白了 85 var p1 = Planet.Earth(weight: 23, name: "hah")
86 //接下来就是得到这些关联值,要得到这些关联值,就要声明额外的变量
87 //但是下面直接用的是switch语句 88 switch(p1){
89 case Planet.Earth(var weight,var name):
90 println("\(name)~~~~~~~~~\(weight)")
91 case let Planet.Mars(density:d,name:n,weight:dou):
92 println("\(d)")
93 default:
94 break 95 }
复制代码

相关文章
|
15天前
|
Swift iOS开发
Swift 枚举
10月更文挑战第28天
25 0
|
6月前
|
存储 定位技术 Swift
【Swift 开发专栏】Swift 中的枚举与结构体
【4月更文挑战第30天】本文探讨了Swift中的枚举与结构体,包括它们的定义、用法及差异。枚举用于表示有限状态或选项,如游戏状态;结构体适合表示具有特定属性和行为的数据,如商品信息。两者均可定义属性和方法,作为函数参数。枚举以整数存储,不可继承,结构体按属性存储且可继承,更灵活。理解两者特点有助于提升编程效率。
35 0
|
6月前
|
Swift
Swift 中的枚举(Enum)
Swift 中的枚举(Enum)
48 2
|
存储 编译器 Swift
27 Swift面向对象概述
Swift面向对象概述
55 0
|
存储 编译器 Swift
Swift-进阶 08:枚举enum
Swift-进阶 08:枚举enum
623 1
Swift-进阶 08:枚举enum
|
Swift
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
421 0
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
|
存储 编译器 Swift
Swift5.0 - day2-流程控制、函数、枚举(下)
Swift5.0 - day2-流程控制、函数、枚举(下)
81 0
Swift5.0 - day2-流程控制、函数、枚举(下)
|
编译器 Swift C++
Swift5.0 - day2-流程控制、函数、枚举(上)
Swift5.0 - day2-流程控制、函数、枚举(上)
139 0
Swift5.0 - day2-流程控制、函数、枚举(上)
Swift - Enum枚举 源码分析
Swift - Enum枚举 源码分析
 Swift - Enum枚举 源码分析
【Swift4】(7) 枚举 | 应用
【Swift4】(7) 枚举 | 应用
116 0