subscripts(下标)

/*

subscripts(下标): 访问对象中数据的快捷方式

所谓下标脚本语法就是能够通过, 实例[索引值]来访问实例中的数据

类似于以前我们访问数字和字典, 其实Swift中的数组和字典就是一个结构体

Array:      subscript (index: Int) -> T

Dictionary: subscript (key: Key) -> Value?

arr[0] == arr.subscript(0)

dict["key"] == dict.subscript("key")

*/

struct Student {

var name: String = "HaRi"

var math: Double = 98.0

var chinese: Double = 99.0

var english: Double = 100.0

func score(course: String) -> Double

{

switch course {

case "math":

return math

case "chinese":

return chinese

case "english":

return english

default:

return math + chinese + english // 此处待探究为何返回nil就会爆红

}

}

//1.要想实现下标访问, 必须实现subscript方法;

//2.要想通过下标访问, 必须实现get方法;

//3.要想通过下标赋值, 必须实现set方法.

subscript(course: String) -> Double?{

get{

switch course {

case "math":

return math

case "chinese":

return chinese

case "english":

return english

default:

return math + chinese + english

}

}

set{

switch course{

case "math":

//以为返回的是可选类型

math = newValue!

case "chinese":

chinese = newValue!

case "english":

english = newValue!

default:

print("not found")

}

}

}

}

var stu = Student(name: "han", math: 99.0, chinese: 98.0, english: 57.0)

print(stu.score(course: "english"))

stu["math"] = 100.0

print(stu["math"]!)

/** Swift中是允许多索引的下标的 **/

struct Mul {

subscript(a: Int, b: Int) -> Int

{

return a + b

}

}

var m = Mul()

print(m[10,20])

时间: 2024-10-10 09:30:21

subscripts(下标)的相关文章

Swift学习】Swift编程之旅---Subscripts下标(十六)

类.结构体和枚举可以定义下标,他可以快速简单地访问集合(set,array,dict)的元素,你可以使使用下标来获取和设置集合元素. 你可以定义一个类型的多个下标,通过索引值类型的不同来进行重载,而且索引值的个数可以是多个. 语法 先看一个实例 subscript(index: Int) -> Int { get { // return an appropriate subscript value here } set(newValue) { // perform a suitable sett

JavaScript- The Good Parts Chapter 6

Thee(你) I’ll chase(追逐:追捕) hence(因此:今后), thou(你:尔,汝) wolf in sheep’s array.—William Shakespeare, The First Part of Henry the SixthAn array is a linear(线的,线型的:直线的,线状的:长度的) allocation(分配,配置:安置) of memory in which elements are accessed by integers that a

Swift 常用字符串操作

原文链接:http://www.jianshu.com/p/52e7580166ff 版本2:增加了Swift 2.0的语法,与Swift 1.2的语法相比,主要是:advance方法变成了advancedBy方法(但不是简单替换):没有了count方法,count(str)需要变成str.characters.count等. 字符串的定义 var str1="hello, mandarava." //字符串变量 let str2="hello, mandarava.&quo

【Swift学习】Swift编程之旅---继承(十七)

在 Swift 中,继承是区分「类」与其它类型的一个基本特征.swift不支持多重继承.类可以调用和访问超类的方法,属性和subscripts下标,并且可以重写(override)这些方法,属性和附属脚本来优化或修改它们的行为.Swift 会检查你的重写定义在超类中是否有匹配的定义,以此确保你的重写行为是正确的. 可以为类中继承来的属性添加属性观察器(property observer),这样一来,当属性值改变时,类就会被通知到.可以为任何属性添加属性观察器,无论它原本被定义为存储型属性(sto

Swift与OC的语法简单对比

01-常量与变量   学习swift第一步打印Hello World print("Hello World") swift是不用加分号的 什么是常量? 常量是在程序运行过程中不能改变值的量 什么时变量? 变量是可以在程序运行过程中不断变化的量 在swift当中常量和变量必须在使用前声明 用let来声明常量,用var来声明变量 常量定义方式: 可以用任何你喜欢的字符作为常量和变量名,包括Unicode字符 常量与变量名不能包含以下: 数学符号,箭头,保留的(或者非法的)Unicode码位

十一、下标 Subscripts

1. 概述 下标 Subscripts 是访问 Collection, List, 和 Sequence 中成员元素的速记方法(Shortcuts). Classes, Structures, Enumerations 都可以定义下标 Subscripts . 2.下标语法 Subscript Syntax 下标的语法与实例的方法(Instance method)语法和计算属性(Computed Properties) 的语法类似. 通过 subscript 关键字定义下标,并且指定一个(或多个

2.12 下标脚本(Subscripts)

下标脚本(Subscripts) 本页包含内容: 下标脚本语法 下标脚本用法 下标脚本选项 下标脚本 可以定义在类(Class).结构体(structure)和枚举(enumeration)这些目标中,可以认为是访问对象.集合或序列的快捷方式,不需要再调用实例的特定的赋值和访问方法.举例来说,用下标脚本访问一个数组(Array)实例中的元素可以这样写 someArray[index] ,访问字典(Dictionary)实例中的元素可以这样写someDictionary[key]. 对于同一个目标

Swift学习笔记(15)--下标脚本(Subscripts)

下标脚本可以定义在类(Class).结构体(structure)和枚举(enumeration)这些目标中,使用中类似数组或者字典的用法 1.定义 定义下标脚本使用subscript关键字,语法: subscript(index: Int) -> Int { get { // 返回与入参匹配的Int类型的值 } set(newValue) { // 执行赋值操作 } } 注:newValue的类型必须和下标脚本定义的返回类型相同.与计算型属性相同的是set的入参声明newValue就算不写,在s

Swift—下标脚本(Subscripts)

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