Swift—下标-备

看下面的示例代码是不是使用过:

 

  1. var studentList: String[]  = ["张三","李四","王五"]
  2. studentList[0] = "诸葛亮"
  3. var studentDictionary = [102: "张三",105: "李四", 109: "王五"]
  4. studentDictionary[110] = "董六"

在访问数组和字典的时候,可以采用下标访问。其中数组的下标是整数类型索引,字典的下标是它的“键”。

下标

Swift中的下标相当于Java中的索引属性和C#中的索引器。

下标访问的语法格式如下:

 

  1. <span style="font-family:Courier;color:windowtext;font-size: 8pt; mso-ascii-font-family: Courier; mso-hansi-font-family: Courier; mso-bidi-font-family: ‘Courier New‘; mso-font-kerning: 0pt;"><span style="font-family:宋体;">面</span></span>向对象类型 类型名 {
  2. 其他属性
  3. ...
  4. subscript(参数: 参数数据类型) -> 返回值数据类型 {
  5. get {
  6. return 返回值
  7. }
  8. set(新属性值) {
  9. ...
  10. }
  11. }
  12. }

下标也有类似于计算属性的getter和setter访问器。

getter访问器是一个方法,在最后使用return语句将计算结果返回。

setter访问器“新属性值”是要赋值给属性值。参数的声明可以省略,系统会分配一个默认的参数newValue。

示例:二维数组

在Swift中没有提供二维数组,只有一维数组Array。可以自定义一个二维数组类型,然后通过两个下标参数访问它的元素,形式上类似于C语言的二维数组。

采用下标的二维数组示例代码如下:

 

  1. struct DoubleDimensionalArray {  //定义了二维数组结构体
  2. let rows: Int, columns: Int       //存储属性rows和columns
  3. var grid: [Int]
  4. init(rows: Int, columns: Int) {   //构造函数
  5. self.rows = rows
  6. self.columns = columns
  7. grid = Array(count: rows * columns, repeatedValue: 0)  //初始化存储属性grid
  8. }
  9. subscript(row: Int, col: Int) -> Int {    //定义下标
  10. get {
  11. return grid[(row * columns) + col]
  12. }
  13. set (newValue1){
  14. grid[(row * columns) + col] = newValue1
  15. }
  16. }
  17. }
  18. var ary2 = DoubleDimensionalArray(rows: 10, columns: 10) //创建并初始化10×10大小的二维数组
  19. //初始化二维数组
  20. for var i = 0; i < 10; i++ {
  21. for var j = 0; j < 10; j++ {
  22. ary2[i,j] = i * j
  23. }
  24. }
  25. //打印输出二维数组
  26. for var i = 0; i < 10; i++ {
  27. for var j = 0; j < 10; j++ {
  28. print("\t \(ary2[i,j])")
  29. }
  30. print("\n")
  31. }

输出结果如下:

0  0  0  0  0  0  0  0  0  0

0  1  2  3  4  5  6  7  8  9

0  2  4  6  8  10  12  14  16  18

0  3  6  9  12  15  18  21  24  27

0  4  8  12  16  20  24  28  32  36

0  5  10  15  20  25  30  35  40  45

0  6  12  18  24  30  36  42  48  54

0  7  14  21  28  35  42  49  56  63

0  8  16  24  32  40  48  56  64  72

0  9  18  27  36  45  54  63  72  81

时间: 2024-11-05 15:54:46

Swift—下标-备的相关文章

Swift下标

还记得字典吗? [html] view plaincopy var numberOfLegs= ["spider": 8,"ant": 6, "cat":4] numberOfLegs["bird"]= 2 ["bird"]就是下标 下标可以在类和结构体中定义. 定义下标 [html] view plaincopy subscript(index: Int) -> Int { get { //retu

swift 下标脚本

下标脚本 可以定义在类(Class).结构体(structure)和枚举(enumeration)这些目标中,可以让这些类型的实例通过[]快速访问属性和方法. subscript(index: Int) -> Int { get { // 返回与入参匹配的Int类型的值 } set(newValue) { // 执行赋值操作 } } 通常下标脚本是用来访问集合(collection),列表(list)或序列(sequence)中元素的快捷方式 struct Matrix { let rows:

Swift—下标脚本(Subscripts)

下标脚本可以定义在类(Class).结构体(Struct).枚举(enumeration)这些目标中,可以认为是访问集合,列表或序列的快捷方式,使用下标脚本的索引设置和获取值,不需要再调用实例的特定的赋值和访问方法.对于同一个目标可以定义多个下标脚本,通过索引值类型的不同来进行重载,下标脚本不限于单个纬度,你可以定义多个入参的下标脚本满足自定义类型的需求. 1.下标脚本的语法 下标脚本允许你通过在实例后面的方括号中传入一个或多个的索引值来对实例进行访问和赋值.语法类似于实例方法和计算属性的混合.

swift闭包-备

我给Swift 中的闭包一个定义:闭包是自包含的匿名函数代码块,可以作为表达式.函数参数和函数返回值,闭包表达式的运算结果是一种函数类型. Swift中的闭包类似于Objective-C中的代码块.Java中的匿名内部类. 使用闭包表达式 Swift中的闭包表达式很灵活,其标准语法格式如下: { (参数列表) ->返回值类型 in 语句组 } 其中,参数列表与函数中的参数列表形式一样,返回值类型类似于函数中的返回值类型,但不同的是后面有in关键字. Swift提供了多种闭包简化写法,我来介绍下面

Swift—静态方法-备

静态方法与静态属性类似,Swift中定义了静态方法,也称为类型方法.静态方法的定义与静态属性类似,枚举和结构体的静态方法使用的关键字是static:类静态方法使用的关键字是class或static,如果使用static定义,则该方法不能在子类中被重写(override):如果使用class定义,则该方法可以被子类重写. 结构体静态方法 看一个结构体静态方法的示例,代码如下: [html] view plain copy print? struct Account { var owner: Str

Swift—重写-备

========================= 重写实例属性 我们可以在子类中重写从父类继承来的属性,属性有实例属性和静态属性之分,他们在具体实现也是不同的. 实例属性的重写一方面可以重写getter和setter访问器,另一方面可以重写属性观察者. 计算静态属性需要使用getter和setter访问器,而存储属性不需要.子类在继承父类后,也可以通过getter和setter访问器重写父类的存储属性和计算属性. 下面看一个示例: [html] view plain copy print? c

Swift常用语法示例代码(二)

此篇文章整理自我以前学习Swift时的一些练习代码,其存在的意义多是可以通过看示例代码更快地回忆Swift的主要语法. 如果你想系统学习Swift或者是Swift的初学者请绕路,感谢Github上The Swift Programming Language开源翻译的中文版,感谢极客学院wiki提供的PDF版本. 代码和PDF版本上传至Github,有兴趣的可以下载下来试试. SwiftEnum Swift枚举相比C语言更加灵活,除了成员值,还可以对成员赋原始值和相关值.Swift的枚举采用了很多

Swift 教程

Swift 教程Swift 是一种支持多编程范式和编译式的开源编程语言,苹果于2014年WWDC(苹果开发者大会)发布,用于开发 iOS,OS X 和 watchOS 应用程序.Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制.Swift 在 Mac OS 和 iOS 平台可以和 Object-C 使用相同的运行环境.2015年6月8日,苹果于WWDC 2015上宣布,Swift将开放源代码,包括编译器和标准库.谁适合阅读本教程?本教程适合想从事移动端(iph

从0开始学Swift笔记整理(三)

这是跟在上一篇博文后续内容: --Swift中相关的属性 存储属性 Swift中的属性分为存储属性和计算属性,存储属性就是Objective-C中的数据成员,计算属性不存储数据,但可以通过计算其他属性返回数据.存储属性可以存储数据,分为常量属性(用关键字let定义)和变量属性(用关键var定义). 存储属性概念: 我们在前面曾用到过属性,Employee类和Department结构体.它们的类图如下,Employee 的部门属性dept与Department之间进行了关联. 我们可以在定义存储属