Swift学习总结

Swift学习

##1、常量、变量
var / let
####注意一:
在开发中优先使用常量let,只有发现需要修改的情况,才使用变量。
目的:
防止不小心修改的值情况。

####注意二:
常量的本质:
指向内存地址,不可修改,但是可以通过内存地址,找到相应的对象,之后修改对象内部的属性。

##2、Swift类型推导
###2.1 Swift是强类型语言
强类型:强制定义类型的语言。 let/var
弱类型:非强制定义类型的语言。
静态类型语言:编译器无法检测类型。
动态类型语言:编译器可以自动检测类型的语言。

###2.2 Swift的任何一个标识符都有明确的类型
我们定义一个标识符时,可以直接给标识符赋值,编译器会根据赋值的类型从而推导出前面标识符的类型,这个过程就叫做类型推导。

##3、Swift基本运算
###3.1 swift在计算运行时必须保证类型一致,否则会出错。
相同类型才可以进行运算。Double()
swift没有隐式转换。

##4、Swift和OC的逻辑判断区别
###4.1 if的逻辑区别
1> if后面的()可以省略。
2> 没有非0(nil)即真。
结论:基本上没有什么区别。
###4.2 guard的使用
1>swift 2.0新增语法,和if非常相似,目的是提高程序的可读性。
2>guard语句必须带有else,当判断为true的时候执行guard语句后的方法,当为false时,执行else内部的语句,一般返回return、break、continue和throw。
###4.3 switch的使用
1>用法和OC一致
2>case后可以不写( ),可以不跟break,默认有break。
3>基本用法补充
a、switch后面的case可以判断多个条件。
b、如果希望case结束时,产生case穿透,case结束时添加fallthrough。否则默认的break会终止。

##5、枚举类型
###5.1 创建枚举具体的值
###5.2 给枚举类型绑定值
###5.3 枚举类型的另外一种定义方式
enum Type : Int{case get = 0 , post = 1} 只有int类型的可以这么赋值,其余的类型不可以。

##6、结构体
###6.1 struct是由一系列相同类型或者不同类型的数据构成的数据集合。
###6.2 struct指的是一种数据结构。
###6.3 struct是值类型,在方法中传递是值传递。

swift的结构体是可以拥有自己的属性和方法的,但是OC的结构体只能拥有自己的属性。
###6.4 如果在结构体内的方法中修改结构体中的属性,需要在结构体的方法中添加mutating(变化)
###6.5 默认情况下,系统会为结构体提供一个默认的构造函数,并且该构造函数给每个属性成员进行复制。
1>该构造函数是以init开头,并且构造函数不需要返回值。
2>构造函数结束后必须保证所有的属性被初始化。

你可能感兴趣的:(swift知识点)