A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

该文是对苹果官方英文介绍的中文翻译,可能有些地方不太准确,仅供参考,目的是让大家有一个初步的了解。
Swift是为Cocoa和Cocoa Touch准备的一种创新型编程语言。编写代码具有交互性及趣味性,语法简洁但具有表现力,apps运行轻便快速。Swift已经为下一代iOS和OS X项目做好了准备,或者直接添加进现有的app中,因为Swift能够与Objective-C相兼容。Swift编程指南《The Swift Programming Language》能够从iBooks Store进行下载。

现代化
Swift是编程语言方面最新的研究成果,结合了苹果平台构建中的数十年经验。被命名的参数直接从Objective-C中获得,并且以一种更加简明的语法使得Swift中的APIs易读和维护。推断类型使得代码简洁且不容易出错,同时模块消除了头部且提供命名空间。内存被自动管理,甚至不需要输入分号。

Swift还有很多其它的特性使得代码更加令人印象深刻:

闭包与函数指针保持一致
元组和多个返回值
泛型
在区间或者集合上快速简明的交互
结构体支持方法、扩展、协议
功能化编程形式,如匹配和过滤
交互操场
操场playgrounds使得Swift代码难以置信的简单和有趣。输入一行代码后,其结果能够很快地出现。如果代码运行超时,例如存在循环,可以通过时间轴辅助观察其执行过程。时间轴在一个图中显示了变量,每执行一步便组成一幅画面,可以播放生动的SpriteKit场景。当在操场playgrounds中完成了代码后,可以简单地移动到工程里的代码中。通过操场playgrounds可以:

设计一个新的算法,观察它每一步执行时的结果
生成新的测试,在使用测试工具前先检验这些测试结果
试验新的APIs以磨练Swift编程技能
读验证打印循环(Read-Eval-Print-Loop, REPL)
Xcode中的调试控制台包括了Swift语言内置的交互版本。使用Swift语法验证并与所运行的app进行交互,或者编写新代码来查看它如何在脚本环境中运行。这可以在Xcode控制台或者终端中操作。

为安全设计
Swift消除了所有不安全代码的类型。变量在使用前总会被初始化,数组和整数会被检查是否溢出,而且内存被自动管理。语法使得定义内容时非常简单,例如简单的3个字母的关键字即可以定义变量variable(var)或者常量constrant(let)。

Swift中的安全模式为强大的Cocoa和Cocoa Touch的API所准备。识别并且很好地处理对象为空的情况对于框架而言是非常基本的,然而Swift代码使这极其简单。添加一个单一的字母即可替换Objective-C中整个一行的代码。这些使得编写iOS和Mac apps时更加简单和安全。

快速强大
从早期的设想出发,Swift是为了快速而创建。使用高性能的LLVM编译器,Swift代码能够转化为优化的本地代码,适用于现代的Mac、iPhone和iPad硬件。语法和标准库已经转变为最明显的编写代码的方式,且执行高效。

Swift从C和Objective-C中汲取了最好的特性。它包括底层的原语,如类型、流控制及操作符。它也提供基于对象的特性,如类、协议及泛型,带给Cocoa和Cocoa Touch开发者他们所需要的性能。

今天即可
现在即可以使用Swift代码立刻来实现app的一些新特性,或者增强已有app的特性。新的Swift代码与工程中已有的Objective-C文件是兼容的。当iOS8和OS X Yosemite在秋季发布后,可以将Swift所编写的app提交至App Store和Mac App Store。

想要开始Swift,下载Xcode 6 beta版,并且跟随其中所包含文档的手册。

原文地址(需翻墙):http://songyunlong.com/blog/swift-code-brief-intro/#more-104

评分

参与人数 1技术分 +2 收起 理由
傘が咲く + 2

查看全部评分

17 个回复

倒序浏览
苹果这次很大气,很有战略眼光,现在开始开放了很多的接口供开发者使用,这是一个妙招!
回复 使用道具 举报
微博里面有人把oc开发书扔进了纸篓,有人劝说写ios开发入门的人停笔,oc难道已经成为过去,虽然这都是调侃,但是对于很多方面都会由不小的影响吧。oc还没学完呢 新编程语言又出现了 , 何去何从啊
回复 使用道具 举报
从┧靇┟开始 发表于 2014-6-3 10:35
微博里面有人把oc开发书扔进了纸篓,有人劝说写ios开发入门的人停笔,oc难道已经成为过去,虽然这都是调侃 ...

毕竟新出来的开发语言暂时还不能取代Object-C,我想更多的人会从中二选一,因为不管是Swift Code还是Object-C两者最终不还是在苹果上进行应用的开发,两者说白了是殊途同归,我觉得新事物的出现还需要一段时间才能被大家接受。没必要害怕谁取代谁,我相信苹果有智慧有能力权衡两者的利益,如果说Object-C是他们的开发先驱,那么SwiftCode也算是后起之秀了,把他看淡就行,何况他们不也都要学习C语言作为前提。
回复 使用道具 举报
吉大人 发表于 2014-6-3 10:55
毕竟新出来的开发语言暂时还不能取代Object-C,我想更多的人会从中二选一,因为不管是Swift Code还是Obje ...

我想问下 我现在用的时10.9.3的 如何更新到10.10,用不用花钱,app里会不会更新,什么时候更新啊 求高手指点
回复 使用道具 举报
吉大人 发表于 2014-6-3 10:55
毕竟新出来的开发语言暂时还不能取代Object-C,我想更多的人会从中二选一,因为不管是Swift Code还是Obje ...

说的很好!
回复 使用道具 举报
从┧靇┟开始 发表于 2014-6-3 10:35
微博里面有人把oc开发书扔进了纸篓,有人劝说写ios开发入门的人停笔,oc难道已经成为过去,虽然这都是调侃 ...

swift暂时替代了不OC
现在绝大部分程序都是OC写的,后期的维护和升级还是要用到OC.
况且swift和oc是兼容的,所以学好oc才是正确的。
回复 使用道具 举报
有人說它相當於 C#,或是相當於 Scala 對 Java 的改進,我可以告訴大家,Swift 不是這樣的語言。它更像一種讓人快速做原型的 toy language。

要求 Apple 發佈下一代 Objective-C 語言的呼聲早就有了,每年寫數萬字 OS X 評論的 Ars Technica 兩年前就寫了 Apple 應該去做一個語言,Objective-C without C 並且使用更現代的功能和更短的 API,以及對自動類型推導的支持,文章見 OS X 10.8 Mountain Lion: the Ars Technica review 。

但 Apple 顯然沒有認真對待這門語言。很明顯的,他們根本不想把ObjC給替換掉。並且按Apple的風格,如果他們把Swift當ObjC的未來來對待,肯定會有一到兩個iOS/Mac應用使用Swift改寫。(比如Apple 當年要砍 Carbon,首先做的就是把 Finder 重寫了)。

從語言角度,Swift 有太多的缺點:
- 它的標準庫太差,只有Dictionary, Array 和 String及數這幾種數據結構,連個 Set 都沒有。想用別的?你還是要用 ObjC 的。
- 它沒有任何對異步/同步編程的支持。它沒法綁定使用 GCD,因此任何正經的網絡應用根本無法編寫。
- 它沒有任何的保護機制(private, protected),所有的 method和 variable 都是全局可見的,這顯然不能滿足正經工程項目的需要。
- 只能和 ObjC 互動。如果你想正經地使用C或者C++,你得寫 ObjC 的 wrapper。
- 沒有辦法 catch Objective-C 的 exception,如果一旦出了 exception,你的 App 立馬就崩了。

Chris 在設計這門語言時,可以明顯地看到他的短視。這也很正常,他是一個做編譯器的,不是做語言研究的。所以這門聲稱支持函數式編程的語言,根本不是函數式的:
- 僅有的支持在lazy,閉包,及簡單的函數語言函數(如map, filter)。這ObjC中都能做
- 沒有pattern matching
- 類型推導差不多和 C++11 差不多,沒有使用hindley milner。

從上面這些特點看, Apple對其的定位僅是給對ObjC頭疼的開發者降低學習曲線所推出的玩具語言。前面五條中的每一條,基本都是致命的,因此 Apple 自己的項目也不會使用。做個早期 proof of concept的 prototype 到是可以的。

我可以想象,實現上 Swift 是很簡單的(LLVM很成熟了,寫個新語言越來越簡單,比如只要幾步就能做個小語言: 1. Kaleidoscope: Tutorial Introduction and the Lexer),當然有可能 Apple 將來會解決這些問題使得其真正實用。但現在來看,Apple 並不希望 Swift 來替代 Objective C。

知乎上的人给出的看法。
原文链接:http://www.zhihu.com/question/24002984?rf=24003021
回复 使用道具 举报
有机会了解一下下....
回复 使用道具 举报
今天才看到苹果发布的,懒得去查是什么东西,楼主就提供了,很好,顶楼主
回复 使用道具 举报
苹果太牛了。
回复 使用道具 举报
happy42779 来自手机 中级黑马 2014-6-4 08:01:38
12#
时刻关注新动态...
回复 使用道具 举报
哥们有好点儿的翻墙软件吗,我的弄丢了,找不到好用的
回复 使用道具 举报
现在也学不了swift,而且跟OC差不多,我们现在需要做的就是赶紧学好OC,以后普及swift的时候也能以最快速度学会
回复 使用道具 举报
  对对  还是 OC
回复 使用道具 举报
其实我想知道苹果这次发布新的语言的真正的用意在哪?
回复 使用道具 举报
先把OC学好了,把Swift这门新语言多做了解,等以后知道各自的价值与发展再做取舍也不迟。
回复 使用道具 举报
多谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马