//: Playground - noun: a place where people can play
import UIKit
/************ 下标 ****************/
// 类, 结构体 , 枚举 可以定义下标
// 下标可以传入 多个不同类型的参数, 返回一个任意类型的数据
// 下标中 可以使用 get 和 set 模式(read-write 和 readOnly)
//subscript(index: Int) -> Int {
// get {
// // return an appropriate subscript value here
// return 3
// }
// set(newValue) {
// // perform a suitable setting action here
// }
//}
//subscript(index: Int) -> Int {
// // return an appropriate subscript value here
// return 3
//}
struct TimesTable {
let multiplier: Int
subscript(index: Int) -> Int {
return multiplier * index
}
}
let threeTimesTable = TimesTable(multiplier: 3)
print("six times three is \(threeTimesTable[6])")
// Prints "six times three is 18”
// 在集合中使用下标
var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
numberOfLegs["bird"] = 2
//下面有个矩阵的例子
struct Matrix{
let rows: Int, columns: Int
var grid: [Double]
init(rows: Int, columns: Int) {
self.rows = rows
self.columns = columns
grid = Array(repeating: 0.0, count: rows * columns)
}
func indexIsValid(row: Int, column: Int) -> Bool{
return row >= 0 && row < rows && column >= 0 && column < columns
}
subscript(row: Int, column: Int) -> Double{
get {
assert(indexIsValid(row: row, column: column), "Index out of range")
return grid[(row * column) + column]
}
set {
assert(indexIsValid(row: row, column: column), "Index out of range")
grid[(row * column) + column] = newValue
}
}
}
var matrix = Matrix(rows: 2, columns: 2)
matrix[0,1] = 1.5
matrix[1,0] = 3.2
print(matrix[0,1])
print(matrix[1,0])
swift - subscrip 下标
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最近升级Xcode8后运行提示Swift版本错误,具体错误如下: “Use Legacy Swift Langua...
- 本章将会介绍 下标语法下标用法下标选项定义一个基类子类生成重写防止重写 下标 下标可以定义在类、结构体和枚举中,是...
- 1. 类 Swift中的结构体和类非常相似,但是又有不同之处类是具有相同属性、方法的抽象格式: 类没有逐一构造器 ...