美文网首页
Swift语法学习总结

Swift语法学习总结

作者: Johnny_Chang | 来源:发表于2017-02-24 17:00 被阅读27次

看了一下swift的中文翻译,然后自己模仿敲了一个项目里的个人页面,看了一周多点的视频,老实说应该3天就学完了,自己还是学的太慢了。可能看了,敲过,但还是会很快忘记,趁着艾宾浩斯遗忘曲线还不是快忘记,赶紧总结一波然后再去敲代码比较好。

1.基本的常量let,变量var,类型class,方法func,结构体struct,枚举enum,元组()就不说了

2.I/O参数:针对交换函数所以出现,因为swift没有指针类型,所以出现了IO参数,把形参声明为可以被修改的变量类型

3.函数作为参数传递,衍射高阶函数,高阶函数有什么优势,有文章介绍

4.闭包:类似OC的Block(匿名函数)

5.array的sorted by方法作用整理数组

根据这个例子,体现闭包的强大之处

优化步骤:1.省略类型2.如果闭包语句只有一句,省略return关键字3.参数名缩写,使用$0,$1代表第一个第二个。。4.运算符类型,省略参数,直接一个大于号>,最后简化为一个

6.尾随闭包

7.闭包捕获

8.结构体是值类型,类是引用类型

9.恒等运算符

(is 和 as)

10.存储属性、延迟存储属性(lazy  类似与懒加载)、计算属性、类型属性

通过一个例子可以看清楚区别

懒加载例子:

计算属性:重写get,set方法

newValue、oldValue

只有get方法,是只读属性,两者都有就是可读可写

类型属性:

属性观察器:willset,didset

通过newValue和oldValue看的比较清楚

11.类型方法,类和结构体的不同是写成class func还是static func

12.下标方法,subscript

subsript(number:Int)-> String{

get{ return firendsArr[number] }

set(value){firendsArr[number]=value }//set{firendsArr[number]=newValue

}

13.继承和多态:

继承 继承注意点 多态说明

swift的多态:我理解为重写了父类的方法,和oc不同的是oc的多态有个概念为runtime

14.Swift构造函数

构造函数的概念 几种构造器 构造器分类

比如,不同oc,需要显示写构造方法,Swift往往init都是省略不写

构造器的几点说明

比较特别的构造器:便捷构造器

便捷构造器使用说明 子类初始化优先顺序

构造器的两段式构造过程:

构造过程

成员构造器:结构体特有

成员构造器

可失败构造器:允许构造失败,返回为nil

init?   

15.析构函数:swift是ARC管理,没有MRC,同OC一样,实例释放之前,会先调用析构函数,OC中是deallo,swift中是deinit

注意,要被赋为nil,就要求是可选类型

16.内存管理:强引用,弱引用,循环引用,无主引用

弱引用:使用weak关键字,解决循环引用

无主引用的适用情况

无主引用在不是可选类型时使用,解决循环引用问题

捕获列表:闭包内对self属性的引用导致循环引用问题,和oc的weakself写法不同,swift中使用[unowned(或weak) self]  in .... 多个实体的引用用逗号隔开

捕获列表使用规范

17.可选链

可选链作用 使用场景就是a.b.c.d.func

18.is 和 as

is、as使用场景

注意:as的可选转换格式和强制转换格式的使用

19.AnyObject和Any

比如: var people =[AnyObject]()

20.swift的嵌套

结构体里不能随便修改属性的值,要改需方法前使用mutating

21.swift的扩展:与OC的不同

多使用扩展后面加协议

扩展属性的例子:

注意只能添加计算属性

个人理解是因为,扩展产生时间和类产生时间不一样,类构建的时候又要求存储属性初始化完成,所以就是矛盾的

扩展构造器:

22.协议

协议的分类,包括optional等

协议里的实行声明:不声明默认只有set属性

类类型遵循协议要使用static

协议里定义突变方法

协议里定义构造方法,和类型里的声明是一样的,值得注意的是

而且子类还不用写override

协议作为一个类型,协议首字母大写,对象首字母小写

扩展中添加协议成员,使类遵守相关协议和通过扩展补充协议声明

协议组,使用多个协议

检验协议的一致性

is、as和as?的区别,is,as?都有判断作用,as是强制转换类型

可选协议:

同理,对协议的实现

23.泛型

泛型的使用方法:

类型<泛型类型>(){.....} 泛型使用场景

泛型和协议在一起:使用typealias定义一个数据原型

where关键字,相当于一个条件的限定

where使用场景

相关文章

  • Swift最新语法总结

    swift最新语法总结(函数) swift最新语法总结(枚举类型与结构体) swift最新语法总结(类的使用) s...

  • Swift 4.0 基础学习总结(二)

    在 Swift 4.0 基础学习总结(一)中,我们学习的Swift中的基本数据类型以及控制流,Swift简介的语法...

  • Swift 2.0 (一)语法详解

    swift 语法 自己学习总结的笔记 : 希望能帮到大家,笔记的详细内容是和objective-c的语法进行比较,...

  • 快速掌握swift

    轻松学习Swift语法

  • swift字符串

    Swift字符串常用操作总结 版本2:增加了Swift 2.0的语法,与Swift 1.2的语法相比,主要是:ad...

  • Swift学习

    Swift语法学习

  • Swift 枚举(enum)详解

    Swift基础语法总结,来自苹果官方文档: 枚举(Enumeration) 枚举在Swift中是 first-cl...

  • Swift总结

    swift总结(整理) -- 基本语法 Import swift的import等同于C/C++的include,不...

  • Swift基础学习(一)

    今天系统的总结一下swift的语法,方便后期查看。 本篇学习总结: 常量和变量 变量和常量的输出 类型安全和类型推...

  • swift语法总结

    swift语法 swift初见第一个程序输出hello,world! 在swift中这行代码就算一个完整的程序。你...

网友评论

      本文标题:Swift语法学习总结

      本文链接:https://www.haomeiwen.com/subject/kyjwwttx.html