该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。% U$ ]% Z8 |. j' o
然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。8 v8 ?5 |* _- S d/ u
Rust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:* z- U W% a4 q! F4 F
Swift保障体系0 b. r( X4 `" ?) k+ h) I1 w8 O) N$ J
* c6 i4 n0 V1 \) @& Q! z6 P! Q5 }
Swift可供所有人使用;
) j" ^" L* H' R4 ]5 G9 R" }) {0 tSwift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;
2 {2 K Y7 |! i/ n1 USwift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。
- }6 l8 H; P$ }: Q和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。
" q6 e4 W+ Q9 D" h4 y2 @; j O |+ P% W; ?3 ^/ I. r: V
Swift功能特性/ t# r1 e. `) A+ N; T
h( T5 i7 Q S C: nSwift中并没有加入宏系统;其协议和扩展都源自Objective-C;
$ E+ S1 D$ j: z9 [2 R: A2 iSwift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;4 V d4 B$ K( p5 H% @
单继承类显示重写和内容,外加多种接口;
" Q% `( f1 ?8 J+ y) k9 JLambdas表达式看起来和类Ruby块形式十分相似;' L6 A. Q6 p/ {' q2 S9 x' l
Swift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;' h" U. V, N- g. G2 B
Swift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;* C* B+ p& r( s' Q' K* i
Swift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;
) v% k; B2 b. }" O: _脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。+ D8 Q1 o, c# \/ N
7 o- x/ q9 E1 x9 \Swift的独特性
. y" O2 z1 I- H h) g! p1 J, B$ N q- \4 e( d& \4 g# C* g$ S
Swift支持默认检查算法功能;
1 I" e: f4 r% ]9 }$ L; C iSwift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;
' o1 o2 r* z b0 JSwift看起来并不像是个表达式语言;
3 s( h+ D% R9 H# lSwift使用class来创建类,类可包含字段和方法;
6 Z" a) b% [& a1 x. ]' f
% V5 h9 M% ]1 ^0 _, A9 L6 D/ H8 zSwift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。, W# f5 W/ Z# _; a
除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。
4 B$ c& h& N: S7 w; P/ y# j |
|