说明

有人问为什么不是 JavaScript,因为它是脚本语言,没有类型系统等,完全没法儿跟 Swift 比较。

本人前端开发,对 C、Java、Python 语言仅限入门了解水平,而对 TypeScript(以下简称 TS) 的特性和使用达到了高级水平(自认),因此有些让我震惊的点,可能在各位眼中感觉「只不过是平平无奇的语言特性罢了」,亦或者「莫非设计 TypeScript 的人是天才?」。

本人不一定会对所有 Swift 中与 TS 有差异的地方强行震惊,因为有些 Swift 跟 TS 的差异是因为 TS 的自身不足,且有些设计在计算机语言中司空见惯(如数字区分 Int 和 Double 而不是只有一种 Number 类型),只是 JS 的设计让人震惊(毕竟是一周内赶工设计出来的),而不是 Swift。

本人认为:如果一个语言规则太多、特例太多、保留字太多,那就不是一门好语言。

前言

本文按照 Swift 官方语言介绍的顺序进行有序震惊,省略了不震惊或者不懂的的内容,如 附加宏

基础知识

注释

震惊点:XCode 没有 /** */ 块注释快捷键,只有 cmd + / 的行注释。

VSCode 的块注释快捷键也比较难按,是 Alt + Shift + A ,难道大家都不常用这个功能?

当然,VSCode 和 XCode 中,都可以通过按 /** 后回车,自动生成块注释。

可选绑定

震惊点:我调试的时候想在 if 写一个始终为 true 的值测试用都不行,if 语句的可选绑定,必须是一个可选类型的值。

if let a = 2 { } // 错误!

有必要这样?

集合类型

震惊点:数组方法中,有个 sort 表示原地排序,还有一个 sorted 返回新数组。

一个语言,干了框架干的活儿,很好,很符合苹果的风格,诸如此类的还有很多,就不一一震惊了。

控制流