知识卡片

函数作为一等公民的意义

专业/工作 · 630.c

内容

Swift 里每个函数都有由参数类型和返回值类型共同决定的具体类型,这意味着函数可以像普通 变量一样被声明、赋值、作为参数传给另一个函数、或作为另一个函数的返回值,而不只是”可以 被调用的名字”。这直接带来了回调式编程的基础:把一段行为(而不是一个数据值)当作参数 传递,调用方决定”做什么”,被调用方决定”什么时候做”。发散:这一步跨越是把函数从”过程的 名字”提升为”一等数据”,是后面理解[[闭包捕获变量脱离作用域仍有效|闭包]]、高阶函数(如数组的 sort 接收排序规则作为参数) 的前提——闭包本质上就是没有名字的、可以直接内联书写的函数值。

参考来源

《Swift 4从零到精通iOS开发》第5章《函数与闭包技术》