下标

说起下标的作用对于数组和字典来说并不用陌生,但在Swift中所有的类型都支持下标。用下标可以很方便的访问对象的具体值。

语法格式

使用subscript关键字定义下标
subscript(形参列表)->下标返回值类型
{
  get{
 //getter部分执行体,该部分必须有返回值
}
[set(形参名)
{
//setter部分执行体,该部分一定不能有返回值
}]
}

set部分:set部分可定义一段执行性代码,这段代码用于对下标赋值。Swift允许定义只读下标,因此可以省略set部分,set部分形参代表了通过下标赋值时传入的新值,当然可以省略set部分形参,会提供隐式的形参名:newValue。

get部分:这段代码将返回下标的值。

注意:定义下标时只能省略set部分,不能省略get部分。Swift只支持只读下标,并不支持“只写下标”

 struct Rect
    {
        var x:Int
        var y:Int
        var width:Int
        var height:Int
        subscript(idx:Int )->Int
            {
            get {
                switch(idx)
                {
                case 0:
                    return self.x
                case 1:
                    return self.y
                case 2:
                    return self.width
                case 3:
                    return self.height
                default:
                    print("不支持")
                    return 0
                }

            }
            set{
                switch(idx)
                {
                case 0:
                    self.x=newValue
                case 1:
                    self.y=newValue
                case 2:
                    self.width=newValue
                case 3:
                    self.height=newValue
                default:
                    print("不支持该索引值")
                }

            }
        }
    }
}
 var rect=Rect(x:20,y:12,width:200,height:300)
  rect[0]=40
    rect[1]=67
    print("\(rect[0],rect[1])")

下标重载

一个类型可以包括多个下标,只要多个下标的形参列表不同(形参数量或者形参类型不同)或者返回值类型不同即可,这种功能成为下标重载。
同一个类型可以定义多个下标,Swift允许通过下标参数列表或返回值类型来区分不同的下标,同一个类型中定义多个不同的下标称为下标重载。

时间: 2024-07-28 19:07:51

下标的相关文章

Swift下标

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

MathType公式编辑器改变上下标大小

  1.在桌面上打开Mathtype公式编辑器,或者进入"开始",所有程序中,打开Mathtype公式编辑器. 2.进入Mathtype公式编辑器之后,进行公示编辑,如果只是改变单个的上小标的大小,这里继续,如果是改变所有的,看下方的. 3.公示编辑完毕,选中需要改变大小的上下标. 4.选中需要改变的上下标之后,点击上方菜单栏的"大小(s)". 5.在"大小(s)"栏目下,如果是想变大,点击选择"较大". 6.这时候上下标就改

如何遍历php数组时,同时取出array的下标和值

数组是PHP常用的功能,可以创建一个临时的数据组,把数组的下标当做一个有意义的数字利用起来可以缩减程序代码量.array_keys函数可以把数组的下标当做一个新的数组取出来,但是这个就打乱了key和value的对应关系. 如和在遍历数组的同时把下标也取出来? 直接上代码吧 1 < ?php 2 $arr[]=a; 3 $arr[]=b; 4 $arr[]=c; 5 $arr[5]=e; 6 foreach ($arr as $key=>$value ){ 7 echo $key."-

在字符串中寻找指定的字符,并且返回它的下标,要求用递归实现

问题描述 在字符串中寻找指定的字符,并且返回它的下标,要求用递归实现 在字符串中寻找指定的字符,并且返回它的下标,要求用递归实现,怎么做,C语言 解决方案 #include <stdio.h> int foo(char * s, char f, int acc) { if (s[acc] == '') return -1; if (s[acc] == f) return acc; return foo(s, f, acc + 1); } int main() { char s[] = &quo

Dreamweaver MX 2004高级技巧(10)使用上标和下标

dreamweaver|高级|技巧 本文的目的,是想通过使用上标和下标,掌握在dreamweaver中输入标签的方法. 输入上标 1.在文档中,把插入点放在要输入上标的地方. 2.在"插入"面板,单击"标签选择器". 3.在"标签选择器"中选择sup标签,单击"插入"按钮. 4.在"标签编辑器"中,输入上标的内容. 5.输入上标的结果. 输入下标 按照输入上标的方法,在"标签选择器"中选

如何在CorelDraw中实现上下标

问: CorelDraw中如何实现上下标? 答: 输入文字,选中需要上下标的字符,按CbrL+T快捷键,或者选择菜单"文字-文字格式",单击位置按纽,在右边选择上下标即可. 如果长篇文章排版有多处都需要上下标,建议在自定义中把上下标的按纽定义到属性栏中或自定义快捷键使用,提高工作效率.

在AutoCAD中输入上下标文字

在AutoCAD制图中有时我们需要做一些文字的标注,在工业用的图纸中经常会遇到一些立方米.平方米等有上标的单位符号,那么如何在AutoCAD中输入有上标的符号呢? 使用多行文字命令MTEXT,在文字框中输入"M3^": 用鼠标选中我们需要做成上标的3与"^"符号,点击文字格式对话框上的堆叠按钮: 确认文字的输入,再看立方米单位的输入已经成功: 注意这里"^"符号与选择文字的前后顺序会影响到数字的上下位置,"^"置于文字前可使文

Word 2013中如何设置SmartArt字符间距和上下标

在Word2013文档中,SmartArt图形中的文本有时需要设置字符间距.等高字符.上标.下标和下划线等字体效果,此时可以借助"字体"对话框来实现,操作步骤如下所述: 第1步,打开Word20103文档窗口,在SmartArt图形中双击特定文本使其处于选中状态. 第2步,右键单击被选中的文本,在打开的快捷菜单中选择"字体"命令,如图2013080911所示. 图2013080911 选择"字体"命令 第3步,打开"字体"对话

如何在RichEdit中实现上标下标

近来有好多朋友在csdn问如何在RichEdit中实现上标下标,查了好多资料都没找到.今天无意间在Delphi区闲逛,看到一份实现上下标的文章,于是整理成CB语言的贴出来. 以下代码已测试通过.在Form中放置一个RichEdit,两个Button,完整代码如下: //--------------------------------------------------------------------------- typedef enum{ CFM_Superscript, // 上标 CF

Java得到数组中最有效的元素和下标

先看代码 import java.util.Arrays; /** * 得到数组中最有效的元素和下标.<br> * 最有效的只出现频率超过长度一半的数据. * * @author 赵学庆 www.java2000.net */ public class MyTest { public static void main(String[] args) { int[] values = new int[] { 5, 3, 5, -5, 5, 0, 5 }; int maxValue = getMax