经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » iOS » 查看文章
Swift中protocol的关键字笔记
来源:cnblogs  作者:Naruto_L  时间:2021/6/7 9:09:47  对本文有异议

一、mutating

    mutating 关键字的作用是为了能在该方法中修改 struct 或是 enum 的变量,在类中实现协议方法不用写mutating关键字

  1. protocol ExampleProtocol {
  2. var simpleDescription: String { get }
  3. mutating func adjust()
  4. mutating func newTest()
  5. }
  6. class SimpleClass: ExampleProtocol {
  7. var simpleDescription: String = "A very simple class."
  8. var anotherProperty: Int = 69105
  9. func adjust() {
  10. simpleDescription += " Now 100% adjusted."
  11. }
  12. func newTest() {
  13. print("Jiacheng - SimpleClass -> ExampleProtocol -> newTest")
  14. }
  15. }

    在枚举(enum)和机构体(struct)中遵守协议时,如果在实现方法中改变了自己的变量,则方法的声明和实现都需要加mutating关键字,否则会报错;如果没有改变变量,则不需要加mutating关键字。

二、Swift和OC中protocol的差异

    1. OC中的协议只能在类中实现,而Swift中的协议既可在类中实现,也可在枚举和机构体中实现;

    2. OC的协议方法有可选关键字,Swift没有,因此在Swift中想给协议方法添加可选关键字,则必须给protocol添加@obj关键字,声明这是个OC协议;

    3. 枚举和结构体无法实现添加@obj关键字的协议,该协议方法也无法添加mutating关键字。

 

原文链接:http://www.cnblogs.com/narutoblog/p/14848718.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号