美文网首页iOS技术
Swift和OC的区别

Swift和OC的区别

作者: 向日葵的夏天_summer | 来源:发表于2021-02-07 11:29 被阅读0次

    一.编程范式

    1.Swift可以面向协议编程,函数式编程,面向对象编程;
    2.OC以面向对象编程为主,当然也可以引入类似ReactiveCocoa的类库进行函数式编程;

    二.类型安全

    1. Swift是一门类型安全的语言,如果代码中使用一个字符串String,那么你就不能错误的传递一个整型Int给它;
    2. OC,可以声明一个NSString变量,仍然可以传一个NSNumber给它;

    三.值类型增强:

    1.Swift中,典型的有struct,enum,及tuple都是值类型;而平时使用的Int,Double, Float, String, Array, Dictionary,Set都是结构体实现的,也是值类型;
    2.OC中,NSNumber,NSString和集合类型都是指针类型;

    四.枚举增强:

    1.Swift的枚举可以使用整型,浮点型,字符串,还能拥有属性和方法,甚至支持泛型,协议,扩展等等;
    2.OC里面的枚举则鸡肋很多;

    五.泛型

    Swift支持泛型,也支持泛型的类型约束;

    六.协议和扩展

    1.Swift对协议的支持更加丰富,配合扩展,泛型,关联类型等可以实现面向协议编程,从而大大提高代码的灵活性,同时,Swift中的protocol还可以用于值类型,结构体和枚举;
    2.OC的协议缺乏强约束;

    七.函数和闭包

    1.Swift的函数是一等公民,可以直接定义函数类型变量,可以作为其他函数参数传递,可以作为函数返回值返回;
    2.OC中函数仍是次等公民,需要selector封装或者使用block才能模拟swift中类似的效果

    相关文章

      网友评论

        本文标题:Swift和OC的区别

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