下午,看了一本swift的书,没有从头开始挨着看,而是对比着看。也发现了swift的语言,在跟OC很像的同时,也有许多于其他语言本质的区别。
举例余下。
1、函数。如果,你学过C语言,对函数一定不会陌生。在OC编程中也可以存在函数,但是主要原因是OC是兼容C语言的(函数)。而swift中,你会发现函数的使用跟实例方法没有任何区别,它俩的区别在于它的位置,如果,它位于类中就是实例方法,如果不在类中就是函数。另一方面也就是swift中可以直接写函数,这是在其它面向对象语言没有的。
2、结构体、枚举。这个也存在C中,不过它们的功能比较单一。然而,在swift中,它们的功能有了突破,可以实现类的许多功能,可以在结构体中定义实例方法等类的功能,那么还存在类干嘛?它与类的区别是什么?类可以继承,而结构体、枚举没有继承功能(但是可以使用其他方法代替,后边再讲)。而且(估计)使用结构体、枚举的性能会更好。
3、扩展,这个在OC中有,在不知道,不改变原有类的基础上,给类添加方法。当然,结构体、枚举也可以,但是由于,结构体、枚举是值类型,不可以改变。所以需要一个关键字muting(好象是)修饰一下。扩展也是其他语言没有的,许多Java转过来的程序员不会灵活的运用它。感觉,它最多的使用是给系统提供的Foundation,UIKit扩展。比如,给string,添加一个获取某个位置的单个字符的字符串方法,给UIImage扩展一个便利方法,快速改变大小等等。
4、值类型、引用类型。既然上边提到了。这里再总结一下,swift比OC有个巨大的进步,swift中只有类是引用类型,其它的都是值类型,这样对开发者来说非常友好。
5、关于类型转换。swift是安全语言,需要显性转换。有时候,你可以使用C语言那种强制转换,或者比较简单的转换方法,但是你也会发现swift中给出的方法不多,比如经常使用的string转成数字就没有提供,此时就需要借助OC语言的Foundation框架。先把string转成NSStrng,在把NSString转储你想要的数字类型。
以上纯属个人心得,读后感,如有错误,请指出,谢谢!