枚举作为一种通用型的相关值,枚举的型态可以如下,就以形式来说,枚举通常都是一组一组的,在下面的例子中,我们可以知道在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匹配
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所设置的结果。
枚举的应用其实蛮广泛的,假若在实作中涉及了有顺序的选项排列的逻辑时,不妨考虑看看枚举的使用吧!
铁人赛
<<: Day12 跟着官方文件学习Laravel-Session
引线的练习实作 规则 为达到节省叶节点指向NULL的空间浪费 说明 1.在建立节点的同时,设置左右引...
前言 在这个 GAN 到爆炸的年代,你能想到的东西我都可以拿出一个有 GAN 的 Paper 出来X...
你不一定要很厉害,才能开始;但你要开始,才能很厉害。 《iT邦帮忙铁人赛的观点》(以下简称铁人赛):...
Chap.O 程序基础 & 简介: Part 1. 常用於演算法的开发程序,有以下几种: 1...
以下就是我请学长帮我写的练习专案内容 一、功能列表(Flex 按钮) 1.注册:存取使用者姓名和组别...