全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Swift 3.0基础学习之下标

前言

类,结构体和枚举都可以定义下标,使用下标可以快速访问集合,列表或者序列的数据成员元素。可以使用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小时内与您取得联系。