《Swift开发实战》——第16章,第16.2节下标脚本用法
本节书摘来自异步社区《Swift开发实战》一书中的第16章,第16.2节下标脚本语法,作者 李宁,更多章节内容可以访问云栖社区“异步社区”公众号查看
16.2 下标脚本用法
在Swift语言中,根据使用场景的不同,下标脚本也具有不同的含义。通常下标脚本是用来访问集合(collection)、列表(list)或序列(sequence)中元素的快捷方式。开发者可以在自己特定的类或结构体中,灵活地实现下标脚本来提供合适的功能。
例如,Swift 的字典(Dictionary)实现了通过下标脚本来对其实例中存放的值进行存取操作。在下标脚本中使用和字典索引相同类型的值,并且把一个字典值类型的值赋值给这个下标脚本来为字典设值。参见如下所示的演示代码。
var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
numberOfLegs["bird"] = 2
通过上述代码定义了一个名为numberOfLegs的变量,并且用一个字典字面量初始化出了包含三对键值的字典实例,numberOfLegs的字典存放值类型被推断为Dictionary。当字典实例创建完成之后,通过下标脚本的方式将整型值2赋值到字典实例的索引为bird的位置中。
在Swift程序中实现字典的附属脚本时,在get部分返回值是Int?,上例中的numberOfLegs字典通过附属脚本返回的是一个Int?,或者说“可选的int”。不是每个字典的索引都能得到一个整型值,对于没有设过值的索引的访问返回的结果就是nil。同样道理,想要从字典实例中删除某个索引下的值,只需要给这个索引赋值为nil即可。
《Swift开发实战》——第16章,第16.2节下标脚本用法相关推荐
- 《Swift开发实战》——导读
本节书摘来自异步社区<Swift开发实战>一书中的目录,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 内容简介 前 言 第1章 工欲善其事,必 ...
- 《Swift开发实战》——第2章,第2.4节函数和闭包
本节书摘来自异步社区<Swift开发实战>一书中的第2章,第2.4节函数和闭包,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.4 函数和闭包 在本 ...
- 《Swift开发实战》——第1章,第1.4节启动iOS 8模拟器
本节书摘来自异步社区<Swift开发实战>一书中的第1章,第1.4节启动iOS 8模拟器,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.4 启动i ...
- Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序
Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序 C#原本是用来编写Windows以及Windows Phone的应用程序.自从Xamarin问世后,C#的作用就发生了很大的变化. ...
- 【项目开发实战】第二章——在线商城系统
系列文章目录 第一章--AI人机对战版五子棋游戏 第二章--在线商城系统 文章目录 系列文章目录 前言 1.项目介绍 2.项目规划分析 2.1 电子商务的简要介绍 2.2 在线博客+商城系统构成模块 ...
- DirectX 12 3D游戏开发实战(第一章向量)
目录 第1章 向量代数 1.1 向量 1.2 长度和单位向量 1.3 点积 1.4 叉积 1.5 点 1.6 利用DirectXMath库进行向量运算 1.7 小结 1.8 练习 第1章 向量代数 向 ...
- 《python3网络爬虫开发实战》第一章、开发环境配置-问题汇总
开发环境: VMware虚拟机 Ubuntu18.04 python3.6 (由于对vi操作水平有限,所以大部分都用的gedit进行文件编辑) 换源: 刚装上系统后换了好几个源,就清华源感觉好使点,别 ...
- django web经典模块开发实战——第三章 用Django设计大型电商的类别表
1 电商类别表的项目功能需求 1.1 使用vue.js在前端开发一个电商导航栏项目 demo1 nodejs的安装 yum install -y nodejs 安装淘宝镜像(贼慢..) npm ins ...
- DirectX 12 3D游戏开发实战 (第二章 矩阵代数)
目录 矩阵代数 2.1 矩阵的定义 2.2 矩阵乘法 2.3 转置矩阵 2.4 单位矩阵 2.5 矩阵的行列式 2.6 伴随矩阵 2.7 逆矩阵 2.8 用DirectXMath库处理矩阵 矩阵代数 ...
最新文章
- Spring Boot集成Sharding-jdbc + Mybatis-Plus实现分库分表
- 开源代码维护人员大诉苦水,超半正考虑或已经决定放弃
- 大数据凉了?No,流式计算浪潮才刚刚开始!
- [MATLAB调试笔记]时变循环诊断——[Vx(x)],[Vx(t),Vy(t),Vz(t)],[Ex(x)],[波];[Eng(t)],[Ex(k)],[Ex(x,t)],[logEx(x.t)]
- Embedding技术在房产推荐中的应用
- mac版sublime 无法下载插件(Vue 代码无高亮问题)
- 微软发布.Net Core 3.0 RC1,最终版本定于9月23日
- 一篇文章搞懂数据仓库:常用ETL工具、方法
- 系统建模、分析、仿真和验证软件工具ModelCodoer
- 设计模式笔记--委派
- IOS开发之视图和视图控制器
- Security log is full,only administrator can log on to fix the problem(安全日志满了)
- 笨人学php好学吗_经典学经:笨人学数学的方法
- 5类6类7类网线对比_五类网线、六类网线和七类网线有什么区别?如何挑选网线?...
- 访问服务器硬盘速度慢,硬盘读取速度变慢 当前传输模式pio的解决方法
- linux下的企业级DNS服务器的操作和加速
- 火狐浏览器解除端口限制
- 读《纳瓦尔宝典》感想
- android+源代码加密,震惊!Android 12开发者版源代码泄密
- LED驱动芯片AiP650