Swift与OC的不同

作者: OC笔记 | 来源:发表于2017-03-01 11:11 被阅读0次

    写在前面

    以前做iOS的项目一直使用OC开发,最近做项目时使用了Swift。但是被别人问及

    1. 为什么使用Swift做项目?
    2. Swift与OC相比有什么区别?或者有什么优势?
      ...
      我先是一脸懵逼,因为自己确实没有细细比较过Swift与OC的区别,或者Swift语言到底有什么优势。静下心来想想,自己使用Swift开发项目的最初原因,无非是想证明自己已经掌握了一门新的开发语言,而且,这门语言已经很成熟。
      真要说说Swift与OC的区别,那就先从语法开始总结吧!

    Swift与OC语法上的区别

    常量和变量
    1. Swift常量使用let声明;变量使用var声明
    2. Swift对常量和变量有类型推断的机制
    3. Swift对变量新增了可选类型,可选即表示这个变量要么有值,要么为nil
    函数
    1. Swift一行代码不用写分号
    2. Swift的返回值可以使用元组返回多个值
    3. Swift的函数参数可以设置缺省值
    4. Swift的函数参数有内外标签
    5. Swift的函数可以嵌套函数
    6. Swift子类覆盖父类的方法必须使用关键字override
    关键字、保留字、数据类型
    1. nil:OC中nil只能修饰NSObject及其子类对象,表示OC对象指针为空;Swift中nil可以修饰所有类型,包括基础数据类型,表示值缺失
    2. switch:1. Swift中switch语句的值可以是字符串等值 2.Swift中switch不用break,如果想实现几个值贯穿可以使用关键字fallthrough
    3. 数组:Swift的数据可以存储基础类型数据;NSArray只能使用NSNumber存储基础数据类型数据
    4. 布尔类型:Swift的Bool类型true才为真;OC里BOOL类型非0即为真
    5. 取余:Swift可以对浮点型数据取余(Swift3.0后使用函数对浮点型数据取余;%与OC中保持一致)
    6. Swift中对变量取别名使用typealias;OC中使用typedef
    Swift新增关键字、运算符
    1. 范围运算符:
      a...b表示[a, b],及a<= value <=b
      a..<b表示[a, b),及a<= value <b
    2. 元组

    现在先总结这么多,后续更新。如果有什么遗漏的语法不同点,欢迎大家提出~

    相关文章

      网友评论

        本文标题:Swift与OC的不同

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