ios实用开发技巧编程知识点

Swift与OC的不同

2017-03-01  本文已影响0人  OC笔记

写在前面

以前做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. 元组

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

上一篇 下一篇

猜你喜欢

热点阅读