详解Swift中的下标访问用法

 更新时间:2016年07月05日 18:47:52   作者:珲少  
在Swift中我们可以用subscript函数来定义下标,从而通过下标来访问数组与字典等数据结构,这里我们就来详解Swift中的下标访问用法:

Swift中的Array,Dictionary类型可以通过下标或者键值的方式来进行数据的访问,实际上在Swift的语法中,下标可以定义在类、结构体、枚举中。开发者可以通过下标的方式来对属性进行访问而不用使用专门的存取方法。并且定义的下标不限于一维,开发者可以定义多维的下标来满足需求。

下标的语法结构

 下标使用subscript来定义,其有些类似于方法,参数和返回值本别作为下标入参和通过下标所取的值。但是在subscript实现部分,又十分类似于计算属性,其需要实现一个get块和可选实现一个set块,get块用于使用下标取值,set块用于使用下标设置值,因此,subscript结构更像是计算属性和方法的混合体,示例如下:

class MyClass {
  var array=[1,1,1,1,1]
  subscript(param1:Int)->Int{
    set{
      array[param1] = newValue
    }
    get{
      return array[param1]
    }
  }
}
var obj = MyClass()
obj[0] = 3

开发者可以只编写get块来实现只读的下标访问。对于多维下标的访问方式,只需修改subscript中的参数个数即可,示例如下:
class MyClass {
  var array=[1,1,1,1,1]
  subscript(param1:Int,param2:Int)->Int{
    set{
      array[param1] = newValue
    }
    get{
      return array[param1]
    }
  }
}
var obj = MyClass()
obj[0,1] = 3

下标的特性

Swift中的下标可以自定参数个数和参数类型,返回数据的类型开发者也可以进行自定义。但是有一点需要注意,下标的参数不能设置默认值,也不能设置为in-out类型。多维下标常用语行列数据的访问,示例如下:

class SectionAndRow {
  var array:Array<Array<Int>> = [ [1,2]
                  ,[3,4]
                  ,[5,6]
                  ,[7,8]
                 ]
  subscript(section:Int,row:Int)->Int{
    get{
      let temp = array[section]
      return temp[row]
    }
  }
  
}
var data = SectionAndRow()
//通过二维下标取值
data[1,1]

相关文章

  • Swift实现JSON转Model的方法及HandyJSON使用讲解

    Swift实现JSON转Model的方法及HandyJSON使用讲解

    这篇文章给大家介绍了Swift实现JSON转Model的方法及HandyJSON使用讲解,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-07-07
  • Swift编程中实现希尔排序算法的代码实例

    Swift编程中实现希尔排序算法的代码实例

    希尔排序是对插入排序的一种改进版本,算法本身并不稳定,存在优化空间,这里我们来讲一下希尔排序的大体思路及Swift编程中实现希尔排序算法的代码实例
    2016-07-07
  • Swift教程之基础数据类型详解

    Swift教程之基础数据类型详解

    这篇文章主要介绍了Swift教程之基础数据类型详解,本文详细讲解了Swift中的基本数据类型和基本语法,例如常量和变量、注释、分号、整数、数值类型转换等内容,需要的朋友可以参考下
    2015-01-01
  • Swift的开发环境搭建以及基本语法详解

    Swift的开发环境搭建以及基本语法详解

    这篇文章主要介绍了Swift的开发环境搭建以及基本语法详解,是Swift入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • swift控件工厂类的实现代码

    swift控件工厂类的实现代码

    这篇文章主要为大家详细介绍了swift控件工厂类的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • mac git xcrun error active developer path 错误

    mac git xcrun error active developer path 错误

    本文主要是讲诉了如何解决在mac下使用git;xcode4.6的环境时,出现了错误(mac git xcrun error active developer path)的解决办法,希望对大家有所帮助
    2014-09-09
  • SwiftUI图片缩放、拼图等处理教程

    SwiftUI图片缩放、拼图等处理教程

    SwiftUI是一种使用Swift语言在苹果设备上构建用户界面的创新且简单的方式,下面这篇文章主要给大家介绍了关于SwiftUI图片缩放、拼图等处理的相关资料,需要的朋友可以参考下
    2021-08-08
  • swift framework使用OC 代码两种方式示例

    swift framework使用OC 代码两种方式示例

    这篇文章主要为大家介绍了swift framework使用OC 代码两种方式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Swift实现简单计算器

    Swift实现简单计算器

    这篇文章主要为大家详细介绍了Swift实现简单计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Swift 并发修改Sendable 闭包实例详解

    Swift 并发修改Sendable 闭包实例详解

    这篇文章主要为大家介绍了Swift 并发修改Sendable 闭包实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论