美文网首页
OC 与 Swift

OC 与 Swift

作者: 求长生 | 来源:发表于2020-06-10 09:27 被阅读0次

    OC对象的本质(上):OC对象的底层实现原理
    OC对象的本质(中):OC对象的种类
    OC对象的本质(下):详解isa&superclass指针

    Swift和OC的区别

    1.swift数据类型都会自动判断, 只区分变量var 和 常量let。

    3.swift和OC比较具有全局性, 因为swift是全局的所以编译的速度比OC慢

    一、编程范式
    Swift可以面向协议编程、面向函数编程、面向对象编程。
    OC主要是面向对象编程。

    二、类型安全
    Swift是一个类型安全的语言。例如定义一个NSString,不能传递给其int。
    OC则不尽然。

    三、值类型增强

    在Swift中,典型的有struct、enum以及tuple都是值类型。平常使用的int、double、float、string、array、dictionary、set也都是结构体实现的,所以也是值类型。
    而OC中NSString、NSNumber以及集合对象都是指针类型的。
    四、枚举增强

    Swift中的枚举,支持整形、浮点型、字符等,而且还能有自己的属性和方法,甚至支持协议、扩展、泛型等。
    而OC中的枚举只是一个标记值而已。

    五、泛型
    Swift支持泛型。

    六、协议和扩展
    Swift对协议的支持更加丰富,配合扩展(extension)、泛型、关联类型等可以实现面向协议的编程。
    OC的协议缺乏约束,而且optional会出现很多问题。

    七、函数和闭包
    Swift中函数是一等公民,可以直接定义函数类型的变量、将函数作为参数传递、将函数作为返回值返回。
    OC中函数是次等公民,需要block或者selector

    八、元组
    Swift支持元组(tuples)把多个值组合成一个复合值。元组内的值可以使任意类型,并不要求是相同类型。eg:

    varvalue = (Int,String) = (x:15,y:"abc")

    浅谈Swift和OC的区别

    相关文章

      网友评论

          本文标题:OC 与 Swift

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