Swift 中的函数是构建程序逻辑的核心单元,它将特定任务封装成可重复调用的代码块。定义函数使用 `func` 关键字,后接函数名、参数列表和返回类型。例如:`func greet(name: String) -> String { return \”Hello, \\(name)!\” }`,这个函数接收一个字符串参数并返回问候语。参数类型必须明确声明,这有助于编译器在早期发现潜在错误。
函数参数可以设置默认值,使调用时更灵活。如 `func calculateTax(income: Double, rate: Double = 0.15) -> Double { return income rate }`,当不传入 `rate` 时,默认使用 15%。这种设计减少了冗余调用,提升了代码可读性。同时,可变参数(variadic parameters)允许函数接受任意数量的同类型参数,使用 `…` 表示,如 `func sum(numbers: Int…) -> Int { return numbers.reduce(0, +) }`。
变量是程序中存储数据的基本单位。Swift 使用 `var` 声明可变变量,`let` 声明常量。常量一旦赋值便不可更改,有助于提升代码安全性与性能。例如:`let pi = 3.14159`,`var count = 0`。类型推断让编译器根据初始值自动判断变量类型,减少冗余代码,但必要时仍需显式声明类型以增强可读性。

本图由AI生成,仅供参考
作用域决定了变量和函数的可见范围。局部变量仅在定义它的代码块内有效,而全局变量可在整个文件中访问。函数内部定义的变量不会影响外部环境,这有助于避免命名冲突和副作用。闭包(closure)是一种特殊的函数,能捕获并持有其外部环境中的变量,常用于异步处理或回调场景。
函数作为值类型,可被赋值给变量、作为参数传递或从其他函数返回。例如:`let operation: (Int, Int) -> Int = add`,其中 `add` 是一个函数,这种特性使函数式编程风格在 Swift 中得以实现。通过高阶函数如 `map`、`filter`、`reduce`,我们可以以简洁方式操作集合数据。
实践中,合理设计函数应遵循单一职责原则:每个函数只做一件事。过长的函数容易出错且难以维护。通过拆分逻辑、使用清晰的命名和注释,可显著提升代码的可读性和可测试性。掌握函数与变量的使用,是迈向高效 Swift 编程的关键一步。