知识卡片

函数类型使函数成为一等公民

专业/工作 · 746.b

内容

Swift里每个函数都有一个由参数类型和返回类型组成的”函数类型”,写法是(参数类型列表) -> 返回类型,比如([Int]) -> ([Int], [Int])。因为函数类型和其他类型一样是一等公民,函数本身可以被赋值给常量(let f: ([Int]) -> ([Int],[Int]) = sortedEvenOddNumbers),之后既能像普通值一样传递,也能直接用这个常量调用原函数。没有显式返回值的函数实际返回Void,而Void只是空元组()的类型别名——这意味着”无返回值”在Swift里不是一个特殊状态,而是元组类型退化到零元素的正常情形,函数类型系统因此是自洽的,不需要为”没有返回值”开特例。

参考来源

《Swift编程权威指南》第12章《函数》