【Swift学习笔记00】——enumeration枚举类型遵循协议protocol
Protocols and Extensions一节的小节练习,要求自行定义一个enumeration枚举类型,并且遵循ExampleProtocol协议:
protocol ExampleProtocol {var simpleDescription: String { get }mutating func adjust()
}
在网上找了好久,都不知道怎样实现,最后参照一篇帖子(http://forums.macrumors.com/showthread.php?t=1740890),最终实现如下:
enum EnumConformToProtocol: ExampleProtocol {case First(String), Second(String), Third(String)var simpleDescription: String {get {switch self {case let .First(text):return textcase let .Second(text):return textcase let .Third(text):return textdefault:return "get error"}}set {switch self {case let .First(text):self = .First(newValue)case let .Second(text):self = .Second(newValue)case let .Third(text):self = .Third(newValue)}}}mutating func adjust() {switch self {case let .First(text):self = .First(text + " (first case adjusted)")case let .Second(text):self = .Second(text + " (second case adjusted)")case let .Third(text):self = .Third(text + " (third case adjusted)")}}
}var enumConformToProtocolTest = EnumConformToProtocol.First("FirstVal")
enumConformToProtocolTest.simpleDescription
enumConformToProtocolTest.adjust()
enumConformToProtocolTest.simpleDescriptionenumConformToProtocolTest = EnumConformToProtocol.Third("ThirdVal")
enumConformToProtocolTest.simpleDescription
enumConformToProtocolTest.adjust()
enumConformToProtocolTest.simpleDescriptionvar e = EnumConformToProtocol.Second("Hello")
var text = e.simpleDescription
e.simpleDescription = "Adios"
text = e.simpleDescription
e.adjust()
text = e.simpleDescription
运行结果截图:
转载于:https://www.cnblogs.com/sesexxoo/p/6189924.html
【Swift学习笔记00】——enumeration枚举类型遵循协议protocol相关推荐
- Swift学习笔记-协议(Protocols)
1.0 翻译:geek5nan 校对:dabing1022 2.0 翻译:futantan 校对:小铁匠Linus 定稿:shanksyang 本页包含内容: 协议的语法(Protocol Synta ...
- ElasticSearch 6.x 学习笔记:12.字段类型
ElasticSearch 6.x 学习笔记:12.字段类型 欢迎转载. https://blog.csdn.net/chengyuqiang/article/details/79048800 12. ...
- swift学习笔记《5》- 实用
title: swift学习笔记<5>- 实用 date: 2016-09-21 21:39:00 categories: 学习笔记 Swift学习 tags: Swift 1.setVa ...
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片
Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片 设备图片库和照相机是图像的两个重要来源,使用UIKit中提供的图像选择器UIImagePic ...
- Java学习笔记之Enum枚举(1)
Java学习笔记之Enum枚举(1) 前言 最基本的用法 了解Java中的Enum 后记 链接 前言 这是在学习Java过程中对自己遇到并得以解决的问题的一些记录,一方面是记录下来方便自己以后查询,一 ...
- 计算机网络学习笔记(2. 什么是网络协议)
计算机网络学习笔记(2. 什么是网络协议) 1. 协议是计算机网络有序运行的重要保证 硬件(主机,路由器,通信链路等)是计算机网络的基础 计算机网络中的数据交换必须遵守事先约定好的规则 如同交通系统 ...
- Swift学习笔记(10)--枚举
1.定义语法: enum SomeEnumeration {// enumeration definition goes here } 2.使用 enum CompassPoint {case Nor ...
- Swift学习笔记 (四十二) 不透明类型
具有不透明返回类型的函数或方法会隐藏返回值的类型信息.函数不再提供具体的类型作为返回类型,⽽是根据它支持的协议来 描述返回值.在处理模块和调用代码之间的关系时,隐藏类型信息⾮常有用,因为返回的底层数据 ...
最新文章
- 图像拼接--Fish-Eye Lenses-Based Camera Calibration and Panoramic Image Stitching
- C++多线程简单入门(二)(Windows版)
- 【UIKit】TabView
- 什么是透传通道?(透明传输通道,就是当中继使)
- element UI 制作模糊搜索框
- [css] 如何让一个块元素绝对居中?
- SpringBoot项目部署到独立的Tomcat上
- 三分钟完全了解PyTorch中卷积层内部计算方法和权值初始值的来历,让你对模型有更深层次的理解
- php限制下载文件格式,php下载文件源代码(强制任意文件格式下载)_PHP教程
- python 收发邮件_Python 【收发邮件】
- android studio中把c/c++文件编译成.so库(一)
- SAP License:SAP系统合规性审计介绍
- wdos相关问题解答
- Libmicrohttpd简介
- LIN总线协议详解4(进度表)
- word怎么让封面、目录没有页码,页码从正文开始
- 网站部署证书 百度浏览器仍提示不安全网站怎么办
- Unity制作UFO小游戏
- 微信文章排版技巧和相关排版工具
- 共享充电宝广告机功能与特点