|
该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。
$ W" L O& D5 r+ R- e7 Z+ h然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。
6 _+ q( B F$ h. V5 iRust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:
- f; t% Y$ [: ]2 j* p+ U1 cSwift保障体系
- \4 G- w# ], Z
" v/ d! O' i( o3 \Swift可供所有人使用;
% w5 N( j/ B; w' T" TSwift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;
2 T3 k) p- d% Y$ }2 Q6 S* l7 PSwift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。$ i1 n S! O& x; A8 }9 r$ a5 I
和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。
k0 H& W" D! u* `2 b& w) Q* b) f6 g f6 L6 E
Swift功能特性
8 [' u1 x8 ^( C' T+ L1 N- z8 H- D' Y
Swift中并没有加入宏系统;其协议和扩展都源自Objective-C;$ }9 D8 y% H/ ] h1 A; o
Swift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;
+ A) ~) z' [6 {5 p/ v; `& a单继承类显示重写和内容,外加多种接口;
5 f- U' r5 x0 U6 U3 TLambdas表达式看起来和类Ruby块形式十分相似;
# {% }+ |! X2 D! B* E6 c6 DSwift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;
5 }4 B x# ^+ U. k i: NSwift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;
V7 m, \" M- U- E' hSwift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;
7 I B T; U. \ }! A' Q脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。
& f8 o- ?, j0 f4 K1 m& u( \
" R; m1 G+ ^0 ^5 }- ] C3 CSwift的独特性
; \8 `5 X' X! [; ?+ m& ?* v$ @) Y: g' J
Swift支持默认检查算法功能;
) @ ]( B/ t) `; O- TSwift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;5 `0 X, D( e% b$ e
Swift看起来并不像是个表达式语言;' A# F ~+ ?+ [1 d1 z, c' v% W
Swift使用class来创建类,类可包含字段和方法;( q- ~; S$ B- l: }0 x% C* ^) o$ U
7 w+ H0 L8 H+ b' W9 `& P3 m* \
Swift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。) O3 G1 j& ~3 I- d; R+ a$ L# Z
除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。
9 }9 |' L! A! n |
|