你的分享就是我们的动力 ---﹥

关于苹果公司的Swift,你应该知道的10件事

时间:2014-12-25 18:24来源:www.chengxuyuans.com 点击:

苹果公司最近推出了一门新的开发语言Swift,旨在替代用于OS X和iOS应用开发的Objective-C。在进入秋季之后,苹果公司才会接受使用Swift构建的应用向iOS或Mac App商店提交的申请,到时苹果公司会发行iOS 8和下一个版本的OS X(Yosemite),所以,现在还有一些时间来了解一下这一新编程语言的一些来龙去脉。

  闲话少提,关于Swift,下面这十件事情是您很有必要知悉的。

1.  Swift应会对年轻一代程序员产生吸引力。Swift更类似于诸如Ruby或Python一类的语言而非Objective-C。例如,在使用Swift编写代码时,无需在语句结尾处加上一个分号,这点很像Python。而在使用Objective-C编码时,这是必需的;在一行语句末端忘记输入一个分号会导致错发生。若您曾经使用Ruby或是Python编程,那么Swift应能引发您的兴趣。

虽说如此,但Swift同时兼容现有的Objective-C库,使用Swift编写与现有的Objective-C代码库进行交互的新模块,这完全没有问题。若您已经使用Objective-C构建了一个很重要的技能库,那么这一兼容性也会使得Swift显得很有吸引力。

2.  Swift会是一门(更)安全的语言。在各类微妙地带,苹果公司都竭力保证Swift的安全性。对于初学者来说,编程人员必须使用一对花括号来指定“if”语句的开始和结束位置,这可以避免诸如SSL代码中的“goto fail”错误。此外,switch语句必须包含一个default语句,这保证了即使语句中没有一种可能性成立,语句最终也会执行一些内容。

3.  Swift的速度没那么快。尽管取了这么个名字(译者注:swift中文意即迅速),Swift不太可能让应用在运行速度方面大大胜过那些使用Objective-C编写的应用。尽管这是两种不同的语言,他们又非完全不同,他们都针对相同的Cocoa和Cocoa Touch API(分别用于OS X 和iOS),两者都是静态类型的语言,还使用同一种LLVM编译器。性能有差异是难免,毕竟这是两种不同的语言,但别期待有显著的差异。

4.  Swift尚未以全貌现身(译者注:指在作者发表本文时)。目前提供的这一语言还不是最终成品,苹果公司仍在继续对之加以完善,在接下来的几个月中,很有可能会往其中添加一些新的功能。虽然,为了让自己熟悉这一语言而使用Swift进行编码是一项值得去做的事情,但要实现这一点,您需要用到Xcode 6的测试版和iOS 8的SDK(也是测试版)。而且别忘了,只有在先发布了Yosemite和 iOS 8之后,苹果公司的商店才会接受使用Swift构建的应用。

5.  您可以在“Playground”中测试Swift代码,Swift的最有趣功能之一就是这个被称作Playground的交互性环境,该工具允许您在输入代码时查看修改或添加代码所带来的影响,无需通过编译和运行代码这一耗时的繁琐程序来验证这一点。

Playground的功能还包括了“(Watch)查看”变量值这一能力,在代码的单独一行中输入变量的名字就可以看到显示在侧栏上的变量当前值,同时还会看到一组“Quick Look(快速查看)”按钮,这些按钮被用来显示图片、串和其他一些适用于图形化显示的内容。

6.  Swift提供了类型推断功能。与Scala、Opa和其他一些正处在上升势头的编程语言相类似,Swift会进行类型推断。代码编写人员再无需花费时间使用类型信息来注解变量,且这还要冒犯错的危险;在大部分情况下,编译器可通过为变量所设定的值来推断出变量的类型。

因此,您可预期的一件事是,隐藏在代码中的与类型相关的错误会更少。此外,还得多谢智能优化,您的代码会因此运行得更快。

7.  Swift引入了泛型。在使用静态类型的语言编写函数时,您需要声明函数参数的类型,这没有什么问题,但在您编写希望其能在用到不同类型的不同环境中工作的函数时,问题就来了。

输入泛型。与C++中的Template非常类似,泛型是可被不同变量类型重用而又无需为每种类型进行重写的这样一些函数。比如说,一个把数组中的内容相加的函数,在某些情况下,这些内容可能是整数,而在另一些情况下,则是浮点数。

8.  Swift更易于处理串。若Objective-C中的串处理让您抓狂,那么您会爱上Swift的,因为这一新语言对串的处理要简单得多。最值得注意的是,您可以简单地使用“+=”符号来连接串,以及使用“==”符号来比较串,以此来替代罗嗦得多的“isEqualToString:”。此外,串还可以用在switch语句中。

9.  Swift元组提供了复合变量。元组允许您把多个元素组合到一个复合变量中,Swift元组中的这些变量可以是任何一种类型,彼此之间不必是相同的类型。您可以通过任何自己想用的类型排列来创建一个元组:(Int, Int, Int)、(int, String)、(String,Bool)或任何其他您所需的排列都可以。

获取元组中的值的做法有多种,例如,您可以通过索引值(从0开始)来访问它们,或者也可以把一个元组分解成一些单独的常量或变量。

10.  苹果公司掌控Swift的未来。已存在30年的时间,Objective-C已是相当的老掉牙了。不过,苹果公司并未明确表示引入这一新语言的理由。那么最有可能的原因是什么呢?也许是,作为Swift的创造者,苹果公司可以随时随意添加或修改任何他所想要的功能。

另外的一个好处是,一旦Swift成为主流,这将使得把iOS应用移植到安卓平台上成为一件更不易实现的事情,您将无法使用一些现有的和相对成熟的工具来实现Objective-C到Java的移植。


“关于苹果公司的Swift,你应该知道的10件事”这一文章的英文原文最初发布于“CIO”网站。

转载注明地址:http://www.chengxuyuans.com/software_engineering/86221.html