Swift 学校笔记---Subscripts

5 篇文章 0 订阅

Subscripts

类、结构体、枚举能够通过下标来获取其中的值。

一下标语法

  通过在一个方括号里写一个或者更多个值,下标可以查询实例对象。通过写 subscript 来定义一个下标,并且我们可以指定一个或者多个输入值和一个返回值。下标可以是 read-write 或者 read-only。
  subscript(index: Int) -> Int {
get {
    // return an appropriate subscript value here
}
set(newValue) {
    // perform a suitable setting action here
}
}
newValue 的类型和返回值类型是相同。正如计算属性,你能选择不去指定 set 方法的参数,一个默认的返回值 newValue 被设置。
正如 read-only 计算属性,read-only 下标能够省略get 关键字

subscript(index: Int) -> Int {
// return an appropriate subscript value here
}
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"

二.下标用法

 下标的功能取决于具体类型对它的实现。下标一个典型的用法是用来快速的访问容器、列表。你能够为一些类或者结构体定义特殊的下边语法。
 Swift 的 Dictionary 类型实现了下标语法,我们可以用下标来设置或者取回字典里的对象。
var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
numberOfLegs["bird"] = 2

三可选下标

 下标语法 neng 够接受任意类型和数量的输入参数。下标语法也可以返回任意类型。下标可以用可变参数,但是不能够用 in-out 参数或者提供默认的参数值。
 类和结构体可以定义许多下边的实现。Swift 根据传入的参数来调用合适的下标实现。这就是下标的重载。
 struct Point {
var x:Int
var y:Int
subscript(x:Int,y:Int)->Int{
    get{
    return self.x;
    }
    set{
        self.x = newValue;
    }
}
subscript(x:String,y:String)->Int{
    return self.y;
}
}

var point = Point(x: 1, y: 2);
print("\(point[1,2])");
print("\(point["1","2"])")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值