2.7 模拟面试

(1)符号“?”和“!”是Swift工程中非常常见的两个符号,请简述你对他们的理解。

回答要点提示:

① 首先分类型和实例两个方面理解,“?”,出现在类型后表示Optional类型,出现在实例后表示可选链调用。“!”,出现在类型后表示默认隐式解析,出现在实例后表示强制拆包。

② 这两个符号都与Swift中的Optional类型相关,Optional类型是Swift语言强调安全性的一种方式,某个变量可不可以为空应该是逻辑上决定的,而不是不可预知、不可控的。

③ if-let结构与Optional类型值的结合使用可以编写出优雅安全的逻辑代码。

核心理解内容:

对Swift中Optional类型做深入理解。

(2)十进制、二进制、八进制、十六进制各有什么优势,哪些场景下进行使用。

回答要点提示:

① 十进制的优势不必多言,日常生活中几乎所有的数学计算都是使用的十进制,例如钱币的单位、班级的座次、队伍的排序等是以十进制表示的。

② 二进制是计算机最方便理解的进制方式,高低电平状态非常容易表示二进制的0和1,同时也是计算机运行最稳定的存储数据进制方式。

③ 八进制和十六进制实际上是二进制的聚合方式。在八进制中,每位数字可以表示二进制中的3位,在十六进制中,每位数字可以表示二进制的4位,大大缩短了二进制数的长度,并且便于阅读。常常使用十六进制来表示颜色数据。

核心理解内容:

进制的原理以及转换方法。

(3)Swift语言中是否只有var和let两种数据类型?

回答要点提示:

① 这个命题大错特错。在Swift中,var和let并不是数据类型,只是两种用来声明变量的方式。

② Swift是一种强数据类型,和C、C++、Objective-C、Java等语言一样,变量在声明时其数据类型就已经确定,有时候我们没有显式指定是由于Xcode有自动类型推断功能。

③ Swift中的数据类型有基本数据类型和引用数据类型,基本数据类型中又包含整型、浮点型、布尔型、元组等。

核心理解内容:

理解数据类型的意义,理解变量和数据类型之间的关系,明白Xcode的自动类型推断功能。