该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。) C- e1 E9 e$ L) v
然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。
' ~3 J1 o. {9 M1 `8 H3 A1 D1 {- E& lRust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:& H: s+ _! T4 k# k6 G2 E* C* L
Swift保障体系# e/ X* q8 ]* \3 i. A E9 y4 H
$ o( E" A0 c' U# [Swift可供所有人使用;# [$ X: u9 N+ Z; I* y6 B5 B
Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;
7 S6 R, N5 E E0 {5 K% GSwift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。
$ Z, D+ l4 T$ d; j# B7 \ q和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。" y& d4 x: F1 I! S
4 b1 H4 m/ ], w0 Z* ]4 s/ ]- T
Swift功能特性
) Z7 ~. m6 o6 F4 t0 a' Y6 [* H9 ^5 T# G3 K7 @4 U8 C. [
Swift中并没有加入宏系统;其协议和扩展都源自Objective-C;/ O/ O3 Q4 ~+ ^8 i2 @( n
Swift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;
, n- s- s1 \$ h( v* F单继承类显示重写和内容,外加多种接口; A! p2 x5 E* C. w5 j6 | |; K
Lambdas表达式看起来和类Ruby块形式十分相似;
; M. L3 w4 ^$ z1 B# Q0 v& |3 _Swift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;
0 p; x+ }- _; ?7 [" T' z0 {Swift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;& | H) q2 e' m. ^
Swift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;8 `6 F1 m: C7 J6 K" A' t# Z0 w
脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。7 ^# o0 v# H, E, D( x+ n7 R1 G
% H( G6 o* P% p' L* A( y- MSwift的独特性! d# a5 d0 R: g2 Z {
0 n$ p$ q/ J: W/ N( ISwift支持默认检查算法功能;
. ]# e6 A; I( z: n7 i8 x8 NSwift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;2 Q2 ?! N$ I, v
Swift看起来并不像是个表达式语言;
7 T9 I1 ] r& D& u2 \Swift使用class来创建类,类可包含字段和方法;3 I0 G3 f! @% ?# B Z. }" z
' E; @: d& s. k- d9 c# h3 S
Swift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。0 H9 ]1 q+ y$ w4 [+ ~
除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。% O6 t( ^- `6 H" W; s0 y
|
|