5.7 模拟面试

(1)怎么理解函数?

回答要点提示:

① 从表面上看,函数其实是一组代码的组合,因此函数也被称为完成特殊功能的代码块。

② 函数的三要素是函数名、参数和返回值。

③ 在Swift语言中,函数的定义十分灵活,可以定义带默认值的函数,可以定义参数个数不定的函数,函数的参数名也可以自由地设置内部名称、外部名称甚至匿名。

④ 在定义函数时,可以将其理解为小功能单元,切记避免函数过于冗长。

核心理解内容:

熟练使用系统函数,熟练掌握函数的定义方法,理解函数参数和返回值的意义。

(2)什么是闭包?

回答要点提示:

① 闭包是Swift中的一种高级语法结构,闭包的核心是在其中使用的局部变量会被额外复制或引用,使这些变量脱离其作用域后依然有效。

② 闭包的功能与函数十分类似,其也是完成特定功能的代码块。可以将闭包当作对象使用,将其赋值给指定的变量,并且可以使用此变量直接调用闭包。

③ 和函数一样,闭包也有参数和返回值。

④ 闭包可以作为函数的参数或返回值。

⑤ 在Swift中,闭包有逃逸闭包与非逃逸闭包之分,对于逃逸闭包,函数内的闭包在函数外依然有效,对于非逃逸闭包,离开函数后闭包将失效。

⑥ Swift语言中的闭包写法十分灵活,可以使用各种技巧来编写出非常简洁的闭包代码,例如后置闭包技巧、省略参数类型技巧、省略返回值类型技巧等。

核心理解内容:

在实际开发中,闭包的使用非常频繁,网络回调、自定义算法块、界面间传值等都会使用到闭包,加强练习掌握闭包知识是学习Swift方法的重中之重。