前言

类,结构体和枚举都可以定义下标,使用下标可以快速访问集合,列表或者序列的数据成员元素。可以使用someArray[index]来访问Array, 使用someDictionary[key]来访问Dictionary。
一个类型可以定义多个下标。
定义一个get set的下标:
subscript(index: Int) -> Int {
get {
// return an appropriate subscript value here
}
set(newValue) {
// perform a suitable setting action here
}
}
定义一个read-only的下标
subscript(index: Int) -> Int {
// return an appropriate subscript value here
}
例子:
struct TimesTable {
let multiplier: Int
subscript(index: Int) -> Int {
return multiplier * index
}
}
let threeTimesTable = TimesTable(multiplier: 3)
print("six times three is \(threeTimesTable[6])")
// Prints "six times three is 18"
还可以使用多个下标, 任何类型,除了in-out类型的参数
struct Matrix {
let rows: Int, columns: Int
var grid: [Double]
init(rows: Int, columns: Int) {
self.rows = rows
self.columns = columns
grid = Array(repeating: 0.0, count: rows * columns)
}
func indexIsValid(row: Int, column: Int) -> Bool {
return row >= 0 && row < rows && column >= 0 && column < columns
}
subscript(row: Int, column: Int) -> Double {
get {
assert(indexIsValid(row: row, column: column), "Index out of range")
return grid[(row * columns) + column]
}
set {
assert(indexIsValid(row: row, column: column), "Index out of range")
grid[(row * columns) + column] = newValue
}
}
}
参考翻译英语原文:
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Subscripts.html#//apple_ref/doc/uid/TP40014097-CH16-ID305
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者使用Swift能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# swift
# 下标
# 下标用法
# 3.0
# Swift教程之下标详解
# 详解Swift中的下标访问用法
# 详解Swift编程中下标的用法
# 多个
# 还可以
# 来访问
# 可以使用
# 英语
# 这篇文章
# 谢谢大家
# 有疑问
# perform
# suitable
# setting
# gt
# Int
# newValue
# return
# action
# times
# print
# cpp
# Prints
相关文章:
子杰智能建站系统|零代码开发与AI生成SEO优化指南
如何快速搭建安全的FTP站点?
如何快速搭建高效简练网站?
如何在万网开始建站?分步指南解析
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何破解联通资金短缺导致的基站建设难题?
如何在云虚拟主机上快速搭建个人网站?
如何获取免费开源的自助建站系统源码?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
如何使用Golang table-driven基准测试_多组数据测量函数效率
如何用5美元大硬盘VPS安全高效搭建个人网站?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
c# 在高并发下使用反射发射(Reflection.Emit)的性能
如何用虚拟主机快速搭建网站?详细步骤解析
C#如何在一个XML文件中查找并替换文本内容
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星安装模板失败:服务器环境不兼容?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
建站之星展会模版如何一键下载生成?
利用JavaScript实现拖拽改变元素大小
寿县云建站:智能SEO优化与多行业模板快速上线指南
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
高性价比服务器租赁——企业级配置与24小时运维服务
如何快速搭建支持数据库操作的智能建站平台?
宝塔新建站点报错如何解决?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
建站之星与建站宝盒如何选择最佳方案?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
如何正确选择百度移动适配建站域名?
Python如何创建带属性的XML节点
重庆市网站制作公司,重庆招聘网站哪个好?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
建站之星后台密码如何安全设置与找回?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
实例解析Array和String方法
制作旅游网站html,怎样注册旅游网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
上海网站制作开发公司,上海买房比较好的网站有哪些?
临沂网站制作公司有哪些,临沂第四中学官网?
如何选择高效可靠的多用户建站源码资源?
Android滚轮选择时间控件使用详解
网站好制作吗知乎,网站开发好学吗?有什么技巧?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
定制建站是什么?如何实现个性化需求?
香港服务器部署网站为何提示未备案?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
如何用美橙互联一键搭建多站合一网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。