《从零开始学Swift》学习笔记(Day 35)——会使用下标吗?

简介:

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

1
<span style= "font-size:14px;" >var studentList:String[]  = [ "张三" , "李四" , "王五" ]<br>studentList[ 0 ] =  "诸葛亮" <br> <br>var studentDictionary =[ 102 "张三" , 105 "李四" 109 "王五" ]<br>studentDictionary[ 110 ] = "董六" </span>


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

 

下标

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

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

1
<span style= "font-size:14px;" >面向对象类型类型名 { <br>    其他属性<br>    ...<br>    subscript(参数: 参数数据类型) -> 返回值数据类型 {   <br>       get{   <br>          return  返回值<br>       }     <br> <br>       set(新属性值) {<br>          ...<br>       }          <br>    }            <br>}</span>


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

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

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

 

示例:二维数组

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

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

1
<span style= "font-size:14px;" >structDoubleDimensionalArray {   //定义了二维数组结构体<br>    <br>    let rows: Int, columns: Int       //存储属性rows和columns<br>    var grid: [Int]<br>    <br>    init(rows: Int, columns: Int) {   //构造函数<br>        self.rows = rows<br>        self.columns = columns<br>        grid = Array(count: rows * columns,repeatedValue: 0)  //初始化存储属性grid<br>    }<br>    <br>    subscript(row: Int, col: Int) -> Int {    //定义下标<br>        <br>        get {<br>            return grid[(row * columns) + col]  <br>        }<br>        <br>        set (newValue1){<br>            grid[(row * columns) + col] =newValue1    <br>        }<br>    }<br>    <br>}<br> <br>var ary2 =DoubleDimensionalArray(rows: 10, columns: 10)//创建并初始化10×10大小的二维数组<br> <br>//初始化二维数组<br>for var i = 0; i < 10;i++ {<br>    for var j = 0; j < 10; j++ {<br>        ary2[i,j] = i * j          <br> <br>    }<br>}<br> <br>//打印输出二维数组<br>for var i = 0; i < 10;i++ {<br>    for var j = 0; j < 10; j++ {<br>        print("\t \(ary2[i,j])")<br>    }<br>    print("\n")<br>}<br> </span>


输出结果如下:

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




本文转自 tony关东升 51CTO博客,原文链接:http://blog.51cto.com/tonyguan/1746615,如需转载请自行联系原作者

相关文章
|
11月前
|
存储 Swift iOS开发
Swift 下标脚本
10月更文挑战第30天
51 3
|
存储 Swift iOS开发
Swift实用小册11: Subscript下标语法的使用
Swift实用小册11: Subscript下标语法的使用
319 0
Swift实用小册11: Subscript下标语法的使用
|
存储 编译器 Swift
Swift5.0 - day4-闭包、属性、方法、下标
Swift5.0 - day4-闭包、属性、方法、下标
397 0
Swift5.0 - day4-闭包、属性、方法、下标
|
存储
Swift5.1—多维下标
Swift5.1—多维下标
151 0
Swift5.1—多维下标
|
Swift
Swift学习笔记——页面跳转
创建一个single view app后,项目中有main.storyboard,里面是一个viewcontroller。 那么我们如何实现页面跳转 首先添加一个导航控制器Navigation Controller。点击右上的➕,然后选择控件拖到面板上即可
1319 0
|
前端开发 测试技术 Swift
Swift学习笔记——新建项目
在xcode菜单中选择 new -> project -> single view app 点击next在弹出窗中填写项目名称 这里languge有可以选择object-c或swift作为项目语言。这里我们学习swift,所以选择swift。 如果language选择swift,下面的user interface可以选择swiftUI和storyboard。 SwiftUI是2019 年 WWDC 大会上,苹果在压轴环节向大众宣布了基于 Swift 语言构建的全新 UI 框架,与flutter类似,是用代码编写页面,支持快速预览。
827 0
|
Swift 索引
Swift5.1—下标
Swift5.1—下标
156 0
|
Swift iOS开发 开发者
Swift讲解专题十三——下标访问
Swift讲解专题十三——下标访问
165 0