我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > Swift功能特性以及独特性
总共48086条微博

动态微博

查看: 1618|回复: 0

Swift功能特性以及独特性

[复制链接]

114

主题

29

听众

429

金钱

传功长老

该用户从未签到

跳转到指定楼层
楼主
发表于 2014-06-04 11:44:58 |只看该作者 |倒序浏览
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。
! ?3 }$ l% w! V5 n; t6 K然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。
0 n5 a* L& U( W$ r9 ]2 VRust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:. f) e7 A+ T) {* U; z- ^, B! m
Swift保障体系
+ j5 a7 r0 C$ m  n, o* \) O# D. A% c% W8 [# b% }" _
Swift可供所有人使用;# o; u, \0 d( q3 x6 P
Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;
3 h4 ^' F+ \% j6 x* n' PSwift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。5 C9 T0 ~9 N9 y6 i/ l, p
和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。2 {5 j9 ~: U0 \; l" ~4 x

9 h; U, I2 t4 }5 _4 [Swift功能特性) B# Z6 u8 Z1 d( f8 z7 H
. Z: ~: d; Z9 _+ U. E# S. n
Swift中并没有加入宏系统;其协议和扩展都源自Objective-C;# i; ~6 W! K9 E- c
Swift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;
' C- \& k( ?$ ~9 H; c单继承类显示重写和内容,外加多种接口;
/ P, o$ a8 `0 L. {- ELambdas表达式看起来和类Ruby块形式十分相似;# B# U, j) h6 B
Swift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;4 ?) {5 y+ x4 P9 r
Swift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;- t# z! f# z4 f9 e
Swift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;
. Y# i, V, N; V: |脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。
) N- e) N( A4 s4 `" w3 `" ?7 f; H0 q$ Z
Swift的独特性
) G, U! k6 I7 N) [6 y( B& n2 I' i2 a) W) B# x. x
Swift支持默认检查算法功能;
) o) @: q. o# h4 TSwift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;8 s8 h/ A! c9 g. x& j) H
Swift看起来并不像是个表达式语言;
- |/ A# w% R6 bSwift使用class来创建类,类可包含字段和方法;
' n0 w1 C2 g+ l+ K/ ?. x! _# |/ M8 [: ]1 C1 ~! p% d$ }1 z" _
Swift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。
8 l9 W% E* _! ]2 G( S5 H除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。$ C) B! \; e' H/ W- O7 n4 n

科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表