|
该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。
+ S6 k, H) y% F7 K' y4 s3 a然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。
7 Y8 E1 i! Z6 U- e2 U& YRust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:1 X0 f x' }/ E( o
Swift保障体系2 i( q8 x$ d' S! G5 D
- j3 Y. \, S7 e' Q& E
Swift可供所有人使用;$ I' h$ b% F8 e6 b
Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;
& o6 A R/ g$ P' K, _Swift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。
- r) p+ i/ Q: V d6 A和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。
0 U7 J( o4 [! E0 A5 J; i; R0 i6 {% S: s5 F4 f4 E
Swift功能特性
* O9 Y# j" y2 }5 {
1 `% b! y9 x" e9 BSwift中并没有加入宏系统;其协议和扩展都源自Objective-C;% e6 ?7 s% s5 ~. c2 q- c8 E
Swift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;3 A V( `& J9 ~
单继承类显示重写和内容,外加多种接口;
' K- u3 Q; o: FLambdas表达式看起来和类Ruby块形式十分相似;) n0 _( H* X7 {0 o( j
Swift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;
, E' y. E" U% o; FSwift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;0 X7 {# L2 L6 L
Swift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;2 s Q3 {4 k: z" [
脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。
, [& V" P+ _) _+ p" F. I- G( k: z+ p4 p! W0 F
Swift的独特性
3 b& {6 r, ~5 L$ k4 t% ^
; v9 K/ \, L5 K& o. R! W* NSwift支持默认检查算法功能;% V6 t6 `# A) a6 | V
Swift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;
* s/ p, g7 ]4 ~8 sSwift看起来并不像是个表达式语言;
) Z X8 e+ d& j. j- O" z q' o' FSwift使用class来创建类,类可包含字段和方法;
4 L8 _9 S; \% K% V# I4 q6 k
: l; F% T Z7 w" {5 rSwift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。5 l6 c( a# s h7 h2 I7 z
除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。
. m( P6 @) S3 T9 M% e& g4 M |
|