美文网首页
Swift发展史

Swift发展史

作者: 小驴拉磨 | 来源:发表于2018-05-21 11:19 被阅读64次

    简述

    Swift是一种支持多编程范式和编译式的编程语言,是用来撰写macOS/OS X、iOS、watchOS和tvOS的语言之一。 2014年,其在苹果开发者年会(WWDC)发布。设计Swift时,苹果公司有意让Swift与Objective-C共存在苹果公司的操作系统上。

    历史

    • 2010年7月,苹果开发者工具部门总监克里斯·拉特纳开始着手 Swift 编程语言的设计工作,以一年时间,完成基本架构后,他领导了一个设计团队大力参与其中。
    • 2014年6月发表, Swift大约历经4年的开发期。苹果宣称Swift的特点是:快速、现代、安全、互动,而且明显优于Objective-C语言。Swift以LLVM编译,可以使用现有的Cocoa和Cocoa Touch框架。Xcode Playgrounds功能是Swift为苹果开发工具带来的最大创新,该功能提供强大的互动效果,能让Swift源代码在撰写过程中能即时显示出其运行结果。拉特纳本人强调,Playgrounds很大程度是受到布雷特·维克多理念的启发。
    • 2015年6月8日,苹果于WWDC2015上宣布,Swift将开放源代码,包括编译器和标准库。
    • 2015年12月3日,苹果宣布开源swift,并支持Linux,苹果在新网站swift.org和托管网站Github上开源了swift,但苹果的app store并不支持开源的swift,只支持苹果官方的swift版本,官方版本会在新网站swift.org上定期与开源版本同步。

    类似 Objective-C之处

    • 基本数值类型(numeric types)大致相同 (例如Int, UInt, Float, Double)
    • 大量的C 运算对象被移出Swift, 但又引入一些新运算对象。
      大括号被用于组群陈述(group statements)。
    • 变量之赋值使用等于符号, 但比较则使用“连续两个等于”(==)运算对象。还有一个新的运算对象,“连续三个等于”(===)被用来判断常量或变量之间是否为同一对象之实例(instance)。
    • 中括号([], Square brackets)用于数组的表示, 宣告阵例之后, 可以指派索引值(index)来进行元素(element)之访问。
    • 控制陈述(control statement), for, while, if, switch 与Objective-C都十分类似, 但有延伸功能, 像是 for in 用于集合(collection)的轮询,switch 还可以接受非整数的cases条件值, 诸如此类。

    不同于 Objective-C之处

    • 陈述句(statement)不须再使用分号(;)做为结束,但分号还是可以在一行以内作为两个以上陈述的分隔。
    • 头文件(Header files)不再需要。
    • 注解方式 /* ... */ 可以为嵌套(nested)注解,意思是指注解内可以再有注解,过去有些C或C++编译器不支持嵌套注解。
    • 强类型
    • 类型推论或隐含类型(Type inference)
    • 支持泛型编程。
    • 函数为第一等类型(first-class object),这意味着函数可以作为其他函数的参数与返回值。
    • 运算对象可在类别内重新定义 (运算对象重载),可以生成新的运算对象。
    • 字符串全方面支持 Unicode,某些字符甚至可以成为语言的名称。
    • 许多C语言家族过去恶名昭彰的怪语法(error-prone behaviors)也被改变
    1. 不再存在指针。
    2. 指派(Assignments)不再回传值,正确写法是 if (i==0) ,一般容易误写成 if (i=0) 会造成编译时期错误(compile-time error)。
    3. 在switch 的区块内不需要再使用 break 叙述句。另外,case后面都需要有可执行的代码(C或C++可连续使用多个case而不需要额外的代码),否则会发生编译错误。
    4. 变量和常量都要被初始化,而且数组(array)的界限也要确认清楚。
    5. 溢出(overflows)的问题。C语言没有强制整数类型(signed integers)的界限,常常在运行时间发生问题。Swift可以通过整数类型的max或min属性获取最大值或最小值。

    相关文章

      网友评论

          本文标题:Swift发展史

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