swift-语法笔记

     不知不觉已经使用swift开发了半年之久,在这之前一直都是用OC开发,入职这个公司后就开始使用swfit开发需求。现在完全已经适应并且觉得swift超赞,个人觉得swift语法简洁比起OC。在这里记录swift学习点滴

1.数组 Array

swift中没有像OC中有NSArray和NSMutableArray的区别,如果在对象创建时用的Var那就是可变的,用let声明的就是不可变的数组对象当我们有改动的时候编译器会有提示。

并且Swit中的array string dictionary都是值类型是结构体,而不像OC中那样事引用类型,这一点要特别注意⚠️

2.非空! 可空?optional

Swift是一种强制类型的语言。对于数据的f

"?" "!"这两个符号是swift中最常见的标识符号了

"?"是可选型,1.可以不用初始化,该数据可以为空。 2.在使用时,如果参数为可选型参数,则可以避免crash

"!"是必选型,1.必须要初始化,该数据不能为空。  2.如果是必选型的参数,如果该参数为空,则程序会产生crash,因此使用时要特别的注意

3.swift类型判断

is 能够判断一个实例的类是不是某个类 返回bool

as 能 够转换类型 但是要在继承的前提下

4.类型推断

swift对于类型有严格的要求,是强类型语言,强类型语言在编译阶段就为开发者排除了很大一部分的类型不匹配的错误。当给不是同类型的量赋值时编译器会报错。swift中只有let来声明常量,var创建变量,当我们不明确指定所创建的数据是什么类型时,编译器会根据初始化值来动态确认它是什么类型的数据。如果想明确它的类型需要加冒号和类型,如:let a:Float = 2     var x:Int = 3.5

5.泛型编程

这个亮点虽然不是swift的特性,但是它却是比OC高级的地方之一,我们可以结合着协议来写出很多高效并减少耦合的代码

6.面向协议编程

swift中的协议与OC有着很大区别,Swift中的协议可以用扩展实现,相当于协议的一个方法,那么继承这个协议的类就可以直接调用这个方法。而不是像OC中那样必须要实现遵守的协议方法,这种思想其实还是面向对象的思路。而swift的这种特性直接从之前的思想中摆脱出来,是我最喜欢swift的特性。

你可能感兴趣的:(swift-语法笔记)