swift 扩展 和 协议

扩展:可以给一个现有的类,结构体,枚举,还有协议添加新的功能

1、添加计算型实例属性和计算型类属性

2、定义实例方法和类方法

3、提供新的构造器

4、定义下标

5、定义和使用新的嵌套类型

6、使已经存在的类型遵循(conform)一个协议

语法:使用 extension 关键字声明扩展

extension SomeType {

   // 在这里给 SomeType 添加新的功能

}

扩展可以扩充一个现有的类型,给它添加一个或多个协议。

extension SomeType: SomeProtocol, AnotherProtocol {

   // 协议所需要的实现写在这里

}

协议:

1、协议的定义:与类、结构体和枚举的定义非常相似

protocol SomeProtocol {

     // 这里是协议的定义部分

}

2、遵循某个协议,各协议之间用逗号(,)分隔

struct SomeStructure: FirstProtocol, AnotherProtocol {

     // 这里是结构体的定义部分

}

3、把父类放到协议前面

class SomeClass: SomeSuperClass, FirstProtocol, AnotherProtocol {

     // 这里是类的定义部分

}

协议的属性要求:

1、只指定属性的名称和类型,并标明属性是 可读的 还是 可读可写的。

2、协议总是用 var 关键字来声明变量属性,在类型声明后加上 { set get } 来表示属性是可读可写的,可读属性则用 { get } 来表示:

protocol SomeProtocol {

     var mustBeSettable: Int { get set }            // 可读可写

     var doesNotNeedToBeSettable: Int { get }       // 只读

}

3、协议中定义类型属性使用 static 关键字。当类类型遵循协议时,除了 static 关键字,还可以使用 class 关键字来声明类型属性:

protocol AnotherProtocol {

     static var someTypeProperty: Int { get set }

}

协议的方法要求:

1、遵循协议的类型要实现

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值