|
该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。
4 b ^ G) o, c, [然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。
( M+ l9 m1 T' L& d- MRust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:
: ]5 \6 m8 J7 m: G; E/ w0 }Swift保障体系6 }4 g! b" ~& g0 V9 H
5 |. e- C; q# ^# J9 Z, YSwift可供所有人使用;
# @2 l1 r+ R! w, ISwift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;- j7 J5 s* \8 L3 ~3 h& y
Swift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。! R2 ?4 y7 h& \
和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。: \2 d. Q- x0 X' p' |: T2 o6 P6 H
. Z3 }# a6 f: d
Swift功能特性7 x1 R/ L9 |3 v( F: }! b
0 R! ~( f. u7 _; L# E: v2 [
Swift中并没有加入宏系统;其协议和扩展都源自Objective-C;
' b) n; |- m& YSwift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;
( o) V% H6 W0 l- H8 Y, R& S单继承类显示重写和内容,外加多种接口;7 i' }' b6 f, y; M. t9 p
Lambdas表达式看起来和类Ruby块形式十分相似;$ o/ G0 S" s9 ]( a9 M* G. B
Swift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;
# F8 _4 }8 A7 w. y1 e# }3 pSwift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;
9 T& W h. Z* j# `$ v# z: k# iSwift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;
6 y b6 m3 e( q脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。
, T! @3 C: U: H% V2 }5 h& E& ]
# G( s" Y0 x! G- E9 Q' DSwift的独特性+ s m4 r3 P/ l* u) k
9 b: q) v, [6 k& P' i# D) L+ bSwift支持默认检查算法功能;
& w3 v. ?' }0 F8 d" xSwift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;' Y1 J) {+ w$ h( j& N
Swift看起来并不像是个表达式语言;
( [' o3 p9 \9 _5 ?Swift使用class来创建类,类可包含字段和方法;; [, f4 j% n" Y! _
/ b8 k( W5 ^/ p& K9 w! T0 c, Z
Swift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。
; C+ r% t3 b+ N# b; i除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。( v6 w5 e" T6 b% z, e2 E7 M
|
|