前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Swift教程之枚举语法

Swift教程之枚举语法

作者头像
全栈程序员站长
发布于 2022-07-10 07:36:11
发布于 2022-07-10 07:36:11
24700
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是全栈君。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Foundation

//MARK:-------枚举语法-----------
//不像 C 和 Objective-C 一样。Swift 的枚举成员在被创建时不会被赋予一个默认的整数值
enum CompassPoint
{
    case North
    case South
    case East
    case West
}
enum Planet
{
    case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Nepturn
}

var directionToHead = CompassPoint.West
directionToHead = .East

switch directionToHead
{
    case .North:
        print("北方")
    case .South:
        print("南方")
    case .East:
        print("东方")
    case .West:
        print("西方")
    default:
        print("未知方向")
}

//MARK:-------实例值(Associated Values)-----------
//你能够定义 Swift 的枚举存储不论什么类型的实例值。假设须要的话。每一个成员的数据类型能够是各不同样的
enum Barcode
{
    case UPCA(Int, Int, Int)
    case QRCode(String)
}

var productBarcode = Barcode.UPCA(8, 85909_51226, 3)
productBarcode = .QRCode("ABCDEFGHIJKLMNOP")

switch productBarcode
{
    case let .UPCA(numberSystem, identifier, check):
        print("UPC-A with value of \(numberSystem), \(identifier), \(check).")
    case let .QRCode(productCode):
        print("QR code with value of \(productCode).")
}
// 输出 "QR code with value of ABCDEFGHIJKLMNOP.

//MARK:-------原始值(Raw Values)-----------
//原始值能够是字符串。字符,或者不论什么整型值或浮点型值。每一个原始值在它的枚举声明中必须是唯一的。当整型值被用于原始值,假设其它枚举成员没有值时,它们会自己主动递增。enum PlanetRaw: Int{    case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune}//使用枚举成员的toRaw方法能够訪问该枚举成员的原始值:let earthsOrder = PlanetRaw.Earth.rawValueprint(earthsOrder)// earthsOrder is 3//MARK:-----------GCD演示----------var array = ["jack", "rose", "jay", "grace"];//声明一个全局并发队列,类型是 dispatch_queue_t;DISPATCH_QUEUE_PRIORITY_DEFAULT为队列优先级,默觉得0var queue: dispatch_queue_t =  dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)//开启一个线程dispatch_async(queue, { () -> Void in        print(NSThread.currentThread().isMainThread ? "这是主线程" : "这是后台线程")    //第一个參数为次数。第三个參数 block块里面的形參是区分第几次。    dispatch_apply(array.count, queue, { (index:Int) -> Void in            print(String(index) + " --- " + array[Int(index)])    })    //回调主线程。运行UI更新    dispatch_async(dispatch_get_main_queue(), { () -> Void in                print(NSThread.currentThread().isMainThread ? "这是主线程" : "这是后台线程")    })})

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115307.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年2月6,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用kubeadm的方式搭建k8s(1.18.2版本)高可用集群
1)配置主机名,以k8s-master01为例(需要依次根据节点规划角色修改主机名)
没有故事的陈师傅
2020/05/22
4.6K4
Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记
VIP(虚拟IP)不要和公司内网IP重复,首先去ping一下,不通才可用。VIP需要和主机在同一个局域网内
郑子铭
2021/07/10
1.7K0
Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记
IT外包技能--生产高可用k8s实战(一)之手动部署笔记
手动部署K8s高可用集群,master高可用,apiserver高可用,etcd高可用。
Godev
2023/08/14
2.1K0
IT外包技能--生产高可用k8s实战(一)之手动部署笔记
使用kubeadm部署高可用IPV4/IPV6集群
https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了
小陈运维
2024/05/09
4130
使用kubeadm部署高可用IPV4/IPV6集群
kubeadm部署高可用kubernetes
(2)启用 ELRepo 仓库 ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。 ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。
全栈程序员站长
2022/09/15
1K0
使用kubeadm部署高可用IPV4/IPV6集群
https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了
小陈运维
2024/05/05
3240
kubeadm安装高可用k8s集群
● 本次搭建的环境需要五台CentOS服务器(三主二从),然后在每台服务器中分别安装Docker、kubeadm和kubectl以及kubelet。
大忽悠爱学习
2022/09/28
1.3K0
kubeadm安装高可用k8s集群
使用kubeadm部署高可用IPV4/IPV6集群-V1.32
https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了
小陈运维
2025/03/24
820
使用kubeadm部署高可用IPV4/IPV6集群-V1.32
附012.Kubeadm部署高可用Kubernetes
Kubernetes的高可用主要指的是控制平面的高可用,即指多套Master节点组件和Etcd组件,工作节点通过负载均衡连接到各Master。HA有通常有如下两种架构:
木二
2019/12/10
1.3K0
附012.Kubeadm部署高可用Kubernetes
全网最详细 二进制 k8s v1.25.x文档
若不要IPv6 ,不给网卡配置IPv6即可,不要对IPv6相关配置删除或操作,否则会出问题。
小陈运维
2022/12/20
1.8K0
二进制安装k8s v1.25.4 IPv4/IPv6双栈
https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了
小陈运维
2022/12/20
9440
kubeadm搭建高可用集群-版本1.18.2
由于centos7.6的系统默认内核版本是3.10,3.10的内核有很多BUG,最常见的一个就是group memory leak。 (1)、下载所需要的内核版本,我这里采用rpm安装,所以直接下载的rpm包
极客运维圈
2020/05/12
1.6K0
使用kubeadm搭建高可用k8s v1.16.3集群
本文通过kubeadm搭建一个高可用的k8s集群,kubeadm可以帮助我们快速的搭建k8s集群,高可用主要体现在对master节点组件及etcd存储的高可用,文中使用到的服务器ip及角色对应如下:
仙人技术
2020/04/29
2.2K1
使用kubeadm搭建高可用k8s v1.16.3集群
二进制安装Kubernetes(k8s) v1.27.3 IPv4/IPv6双栈 可脱离互联网
https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了
小陈运维
2023/08/18
2K0
二进制安装Kubernetes(k8s) v1.27.3 IPv4/IPv6双栈 可脱离互联网
【云+社区年度征文】Kubernetes v1.19.0高可用安装部署
高可用采用的是HAProxy+Keepalived来进行高可用和master节点的流量负载均衡,HAProxy和KeepAlived以守护进程的方式在所有Master节点部署
mervinwang
2020/12/18
9890
【云+社区年度征文】Kubernetes v1.19.0高可用安装部署
Kubeadm创建高可用Kubernetes v1.12.0集群
1、k8s各节点SSH免密登录。 2、时间同步。 3、各Node必须关闭swap:swapoff -a,否则kubelet启动失败。 4、各节点主机名和IP加入/etc/hosts解析
星哥玩云
2022/07/19
4770
Kubeadm创建高可用Kubernetes v1.12.0集群
附037.Kubernetes_v1.29.2高可用部署架构二
该 Kubernetes 部署过程中,对于部署环节,涉及多个组件,主要有 kubeadm 、kubelet 、kubectl。
木二
2024/03/11
1.1K0
二进制安装Kubernetes(k8s) v1.25.0 IPv4/IPv6双栈
若不要IPv6 ,不给网卡配置IPv6即可,不要对IPv6相关配置删除或操作,否则会出问题。
小陈运维
2022/12/20
2.6K0
二进制安装Kubernetes(k8s) v1.25.0 IPv4/IPv6双栈
使用kubeadm初始化IPV4/IPV6集群
使用kubeadm初始化IPV4/IPV6集群 图片 CentOS 配置YUM源 cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=kubernetes baseurl=https://mirrors.ustc.edu.cn/kubernetes/yum/repos/kubernetes-el7-$basearch enabled=1 EOF setenforce 0 yum install -y kubelet kubeadm
小陈运维
2022/08/19
2410
使用kubeadm初始化IPV4/IPV6集群
【K8S&RockyLinux】基于开源操作系统搭建K8S高可用集群(详细版)
🔗参考链接:Rocky Linux 8.5版本全新图文安装教程并更换阿里镜像源等配置操作
宝耶需努力
2023/06/16
2.3K2
【K8S&RockyLinux】基于开源操作系统搭建K8S高可用集群(详细版)
推荐阅读
相关推荐
使用kubeadm的方式搭建k8s(1.18.2版本)高可用集群
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文