# Day11--枚举:让你「有秩序」的管理「有顺序」的项目

枚举

枚举作为一种通用型的相关值,枚举的型态可以如下,就以形式来说,枚举通常都是一组一组的,在下面的例子中,我们可以知道在Week这个例子里,枚举里的举例是有顺序性的;在过去的一些文章也曾指出,枚举可以很有效用的被使用在排序一些可能有顺序的资料中,或许下面这个例子是一个不错的示范:

enum Week{
    case mon
    case tue
    case wed
    case thu
    case fri
    case sat
    case sun
}

也同时可以让多个枚举的内容出现在同一行中,如下:

enum Week{
    case mon,tue,wed,thu,fri,sat,sun
}

而每一个枚举内部的case都具有一个默认的值,如果在没有设定的情况下,枚举case的值应该是这样:

enum Week{
    case mon = 0,tue,wed,thu,fri,sat,sun
}

通常第一个case的顺序值都是0,而假设今天你因为需要可能需要指定这个enum内部的case带有的值,那你可以这样做:

enum Week{
    case mon = 1,tue,wed,thu,fri,sat,sun
}

这样就会让所有的case的顺序值就是从1开始,依此类推。
如果你今天要叫出某一个case,你这样做可以让week这个枚举基於第一个case被设置於1的基础下,然後读取出你给予它的值:

Week.init(rawValue:6)
//这个时候打印出来的就会是sat

迭代枚举

枚举还有一个很好使用的案例,叫做迭代,下面来举个例子

enum Week:CaseIterable{
    case mon,tue,wed,thu,fri,sat,sun
}

let weekNumber = Week.allCase.count
print(weekNumber)
//可以得出7

allCase这个关键字的意义就是把所有的case都集合起来,让我们可以藉由访问等方式对它进行使用。

Switch Case与枚举值

switch case跟枚举的共同使用算是很常见的组合,我们可以将单个枚举值与switch case匹配

var weekDay = Week.mon
switch weekDay{
case .mon:
    print("Monday")
case .tue:
    print("Tuesday")
case .wed:
    print("Wednesday")
case .thu:
    print("Thursday")
case .fri:
    print("Friday")
case .sat:
    print("Saturday")
case .sun:
    print("Sunday")
}

在上述的例子中,可以这样解释:
在符合weekDay的某个元素的case之下,就打印出该case所设置的结果。

枚举的应用其实蛮广泛的,假若在实作中涉及了有顺序的选项排列的逻辑时,不妨考虑看看枚举的使用吧!

tags: 铁人赛

<<:  Day12 跟着官方文件学习Laravel-Session

>>:  加点GCP – cloud function

杂谈    

【资料结构】引线的练习实作

引线的练习实作 规则 为达到节省叶节点指向NULL的空间浪费 说明 1.在建立节点的同时,设置左右引...

[DAY 19]Gan

前言 在这个 GAN 到爆炸的年代,你能想到的东西我都可以拿出一个有 GAN 的 Paper 出来X...

Day 13 知己知彼

你不一定要很厉害,才能开始;但你要开始,才能很厉害。 《iT邦帮忙铁人赛的观点》(以下简称铁人赛):...

Python 演算法 Day 1 - 程序基础 & 简介

Chap.O 程序基础 & 简介: Part 1. 常用於演算法的开发程序,有以下几种: 1...

DAY2 练习文件内容

以下就是我请学长帮我写的练习专案内容 一、功能列表(Flex 按钮) 1.注册:存取使用者姓名和组别...