一些关键字与概念

这个笔记本,主要用于记录每天新掌握的 iOS 以及 Swift 知识点,温故而知新,也是培养自己的书写习惯。

记录了一些阅读代码过程中,碰到的一些不知道的关键字。

第一个遇到的关键字是 associatedtype,google 之后看到一篇文章,但是里面的示例代码又遇到一系列的关键字。。。


读 swift 时的我

这一段代码是这样的:

protocol Container {   
  associatedtype ItemType    
  mutating func append(_ item:ItemType)   
  var count:Int { 
    get
   }    
  subscript(i:Int) -> ItemType { 
    get
   }
}

所以我需要了解的关键字有

  1. mutating
  2. subscript
  3. associatedtype

mutating

中文意:突变和转变
看了一些资料同时也咨询了一下 swift 老司机
mutating 的用法简单来说就是:声明一个可以改变 struct 中成员变量的方法
如果我们直接改变,是会报错的,所以需要通过该字段来标识,从而可以编译通过

subscript

中文意:下标
见如下示例代码

subscript(requestedMeal : MealTime) -> String?
{
    get
    {
        return meals[requestedMeal]
    }
    set(newMealName)
    {
        meals[requestedMeal] = newMealName
    }
}

简单理解,它把一系列逻辑比如 Array 套 Dicationary,抽象成 k-v 形式的输入输出,简化了代码。

associatedtype

中文意:有关联的类型
通读下来,类似于泛型。
在协议里,声明该类型,操作都用该类型完成,但是在是写协议的类中,指定明确的类型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,873评论 1 10
  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 1,498评论 0 4
  • 132.转换错误成可选值 通过转换错误成一个可选值,你可以使用 try? 来处理错误。当执行try?表达式时,如果...
    无沣阅读 1,275评论 0 3
  • 一、阅读的书 《小狗钱钱》《富爸爸穷爸爸》《30年后你拿什么养活自己》《工作前5年决定你一生的财富》《不持有的生活...
    海盗树阅读 503评论 0 1
  • 凛冽的西北风咆哮着刮过黄土高原,树梢上最后几片叶子也被扫下来之后,冬天真正拉开了它的大幕。喜食面食的北方人饭桌上,...
    留白S阅读 315评论 0 0