文档章节

美国一名程序员对Swift语言的看法

雪儛
 雪儛
发布于 2014/06/12 14:44
字数 740
阅读 25
收藏 0

近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和JavaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。

然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。

Rust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:

Swift保障体系

  • Swift可供所有人使用;
  • Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;
  • Swift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。
  • 和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。

Swift功能特性

  • Swift中并没有加入宏系统;其协议和扩展都源自Objective-C;
  • Swift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;
  • 单继承类显示重写和内容,外加多种接口;
  • Lambdas表达式看起来和类Ruby块形式十分相似;
  • Swift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;
  • Swift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;
  • Swift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;
  • 脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。

Swift的独特性

  • Swift支持默认检查算法功能;
  • Swift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;
  • Swift看起来并不像是个表达式语言;
  • Swift使用class来创建类,类可包含字段和方法;
  • Swift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。
  • 除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区

本文转载自:http://www.apkbus.com/android-8981-1.html

雪儛
粉丝 0
博文 49
码字总数 147
作品 0
深圳
私信 提问
SwiftCon 2015

年底了,辞旧迎新之时,Think技术社区为你带来SwiftCon AlphaShow沙龙活动。 SwiftCon沙龙是由Think技术社区(ThinkInLAMP.com)和OurCoders社区(OurCoders)联合举办,UCloud.cn协办的活动。T...

Think技术社区
2015/12/15
226
0
SwiftCon 2015

年底了,辞旧迎新之时,Think技术社区为你带来SwiftCon AlphaShow沙龙活动。 SwiftCon沙龙是由Think技术社区(ThinkInLAMP.com)和OurCoders社区(OurCoders)联合举办,UCloud.cn协办的活动。T...

Think技术社区
2015/12/15
5
0
2017 年编程语言排行榜:php 仅第 8 名,Java 第 3!

2017年编程语言排行榜出炉了。该排行榜由 EEE Spectrum 杂志发布。 在榜单上,我们可以发现,排在前三名的分别为:Python、C、Java 。 被程序员称为“世界上最好的语言”的php,仅仅排名为第...

周其
2017/12/28
15.8K
69
要成为自由职业者?先要学会苹果的 Swift 哦

近日全球最大的自由职业网站 Upwork 发布了美国自由职业市场2016年 Q4 增长最快的 20 大技能榜单,这意味着如果你想成为自由职业者的话,这些技能是市场上十分需要的。根据这份季度性的榜单显...

红薯
2017/01/30
2.4K
15
弃Java、Swift于不顾,为何选Python?

作者 | JACE HARR 译者 | 姜松浩 转载自 CSDN(ID:CSDNNews) 以下为译文: 刚入行的程序员总是询问他们应该从哪种语言开始,我告诉他们,他们应该首先学习 Python。以下是使用 Python 开始...

AI科技大本营
03/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

对于初学者怎么学好画画?

怎样才能学好绘画?想学好绘画需求做什么?光影怎么运用?学习绘画难吗?便是不知道怎么才能绘画好自己作品的光影! 先灵魂起稿画一个大概 在根据前面几何体的理解运用在练习上 假设一个顶光...

热爱画画的我
20分钟前
3
0
Android studio初次安装启动时弹出unable to access android sdk add-on list提示的解决方法

一、问题描述 初次安装Android Studio,启动后,报错如下: unable to access android sdk add-on lis 如图: 二、原因分析 AS启动后,会在默认路径下检测是否有Android SDK,如果没有的话,...

风君子博客
34分钟前
2
0
程序员面试,为什么不跟我谈高并发?

作为一个看过几千份简历,面试过几百人的面试官,常常会看到简历中有如下文字: 对业务逻辑解耦,高并发等有比较深入的研究和丰富的开发实战经验 对解决高并发问题有深入理解 熟悉大并发技术...

程序员修BUG
38分钟前
4
0
Java中UUID版本5使用

问题 生成UUID版本5作为唯一ID。某些场景不能依赖数据库来生成唯一ID,就需要使用UUID来生成唯一性ID。 解决 Java private static final String NAMESPACE_URL = "6ba7b811-9dad-11d1-80b4...

亚林瓜子
38分钟前
5
0
js 设置焦点 判断控件是否获得焦点 判断哪个控件获得焦点

<html> <head> <title>设置焦点</title> <mce:script language ="javascript"> <!-- function init(){ var ctrl=document.getElementById("UserName"); ctrl.focus(); } // --> </mce:scrip......

前端老手
40分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部