swift相关

180 阅读1分钟

一、问号和叹号的理解

"!"表示这个可选变量存在,可以使用,如果用"!"访问不存在的可选变量会导致一些错误

"?"表示这个变量可能不存在,如果不存在,"?"所在语句后面的内容都不会执行

!是一个强制拆包,告诉编译器我绝对肯定代码能够执行, 如: strValue!.hashValue ,如果不能执行则报错。

?是表示一个不确定,strValue?.hashValue 就等于OC的if(strValue){ [strValue hashValue]; } 有就执行,有没后面代码就不执行。 不会报错。

二、swift和oc的区别

1、Swift没有地址和指针的概念

2、Swift对数据类型要求极为严谨

3、泛型,泛型代码能写出更加灵活清晰、可重复使用的函数

三、泛型的意义和作用

类型的参数化,就是可以把类型像方法的参数那样传递。这一点意义非凡。

泛型使编译器可以在编译期间对类型进行检查以提高类型安全,减少运行时由于对象类型不匹配引发的异常。