前言
Swift 体会
我不算是一个果粉,但是我很喜欢苹果的产品,甚至可以说是狂热。6 月 2 号晚上我一夜未眠,就是在等苹果的 WWDC,这是开发者的狂欢之夜(或者狂欢之日,因为美国时间是白天)。凌晨 1 点,终于开始了,但是苹果一次又一次的新产品展示让我一次又一次的失望,作为开发者的我表示无感。
我坚持看因为我不相信苹果总是让我失望。最终在 WWDC 的最后一个环节,我真心沸腾了,因为一门新的编程语言 Swift 出现了。要知道在饱受了 Objective-C 语言之苦后看见 Swift 是一种什么心情,你不需要再为引用计数而头疼,不需要再为没有命名空间而不得不添加该死的前缀而烦恼,不需要再为Objective-C 那难懂的语法而整天晕乎乎的。此外,苹果还为我们提供了 Playground 这个工具,它能够在我们写程序时实时计算出变量的值,甚至还能呈现数字变量的趋势图,让编程富有乐趣及创造性。
由于 Swift 出现得晚,所以她拥有了目前世界几乎所有编程语言的优点,而没有目前世界所有编程语言的缺点,Swift 她真的太漂亮了。下面我们开始一步一步认识她。
运行速度
从苹果官方所给出的数据来看,Objective-C 比 Python 快 2.8 倍,而 Swift 比 Python 快 3.9 倍,可见苹果在 Swift 上下了大量的功夫进行优化。
开发环境
Swift 语言的开发环境是苹果公司提供的集成开发环境 Xcode,可以用来开发 iOS 应用、iOS 游戏、OSX窗体程序、OSX 游戏、OSX 命令行程序,读者可以直接从 AppStore 中搜索并下载。用 Swift 语言可以做到几乎所有 Objective-C 所做到的事情,所以 Swift 必将取代 Objective-C,如果你还没有学过 Objective-C 语言,那么恭喜你,不用学了,直接学习 Swift 即可。
运行环境
Swift 被强大的 llvm 编译成机器码,直接运行在系统中。由于 Swift 是苹果的产品,所以目前只支持苹果的系统(OSX和iOS)。我们期待会有社区开发出跨平台的Swift语言,因为这么好的一门编程语言,应该能够让世界上的每一个人享受到才好,就像 mono 让 C#语言跨平台一样。
语言特性
具有所有现代编程语言的特性,包括:面向对象、类扩展、命名空间、闭包、泛型、强类型、函数多个返回值等等。
这些特性能够大大提高程序员的开发效率,从而为企业节约成本,同时让编程工作充满乐趣。
语法简介
通过前文的介绍,相信读者已经迫不及待的想尝试 Swift 了,下面我们就来认识一下 Swift 的语法。简洁的语法
Swift 抛弃了 Objective-C 那种古板难懂的语法,采用通俗易懂的脚本语言类语法,学过 Python、JavaScript 或者 Lua 语言的读者肯定不会陌生,这大大降低的初学者的学习成本。
变量及常量
如果要定义一个变量 i 等于 1,只需要写 var i = 1,可以看出,不需要指定类型,因为她会自动做类型推断
如果要定义一个常量 PI 等于 3.14,100.000000%)">let PI = 3.14,常量只能被赋值一次。输出语句
在 Swift 中,可以直接使用 println 函数来输出一段任意类型的信息,如下:println("Hello Swift")
字符串连接
Swift 语言中的字符串连接同样也非常简单,如果两个值都是字符串,则可直接用加号连接,如下所示:var hello = "Hello"
var world = "World"
var str = hello + world如果将要连接的值中有其它类型,则直接使用\()包括就可连接,如下所示:
var hello = "Hello" var num = 100 var str = "\(hello) \(num)"
从上面的示例可以看出,相比 Objective-C 或者 C/C++语言来说,简单太多了。循环
传统的 C 语言的 for 循环是这么写的:for (int i = 0; i < 100; i++) {
//TODO
在 Swift 中,将循环大大简化了,100.000000%)">for i in 0..100{
//TODO
}
具体内容还有很多,详见本书正文。
条件判断与 C 语言并不区别,你可以直接书写 C 语言的语法即可通过,如下:if(count>5){
//TODO
}
在 Swift 中还可以再简洁一些,100.000000%)">if count>5 {
//TODO
}
另外,在 Swift 语言中 Switch...case 语句可以不用加 break 关键字。