苹果的新编程语言 Swift 简介

824 查看

关于

这篇文章简要介绍了苹果于WWDC 2014发布的编程语言——Swift。

前言

在这里我认为有必要提一下Brec VictorInventing on Principle,Swift编程环境的大部分概念都源自于Brec这个演讲。

接下来进入正题。

 

Swift是什么?

Swift是苹果于WWDC 2014发布的编程语言,这里引用The Swift Programming Language的原话:

Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility. Swift adopts safe programming patterns and adds modern features to make programming easier, more flexible and more fun. Swift’s clean slate, backed by the mature and much-loved Cocoa and Cocoa Touch frameworks, is an opportunity to imagine how software development works. Swift is the first industrial-quality systems programming language that is as expressive and enjoyable as a scripting language.

简单的说:

  1. Swift用来写iOS和OS X程序。(估计也不会支持其它屌丝系统)
  2. Swift吸取了C和Objective-C的优点,且更加强大易用。
  3. Swift可以使用现有的Cocoa和Cocoa Touch框架。
  4. Swift兼具编译语言的高性能(Performance)和脚本语言的交互性(Interactive)。

Swift语言概览

基本概念

注:这一节的代码源自The Swift Programming Language中的A Swift Tour

Hello, world

类似于脚本语言,下面的代码即是一个完整的Swift程序。

变量与常量

Swift使用var声明变量,let声明常量

类型推导

Swift支持类型推导(Type Inference),所以上面的代码不需指定类型,如果需要指定类型:

Swift不支持隐式类型转换(Implicitly casting),所以下面的代码需要显式类型转换(Explicitly casting):

字符串格式化

Swift使用\(item)的形式进行字符串格式化:

数组和字典

Swift使用[]操作符声明数组(array)和字典(dictionary):

一般使用初始化器(initializer)语法创建空数组和空字典:

如果类型信息已知,则可以使用[]声明空数组,使用[:]声明空字典。

控制流

概览

Swift的条件语句包含ifswitch,循环语句包含for-inforwhiledo-while,循环/判断条件不需要括号,但循环/判断体(body)必需括号:

可空类型

结合iflet,可以方便的处理可空变量(nullable variable)。对于空值,需要在类型声明后添加?显式标明该类型可空。

灵活的switch

Swift中的switch支持各种各样的比较操作:

 

其它循环

for-in除了遍历数组也可以用来遍历字典:

while循环和do-while循环:

Swift支持传统的for循环,此外也可以通过结合..(生成一个区间)和for-in实现同样的逻辑。