swift 函数类型

swift 函数类型
 
 
 
 
 
 
在 Swift 中,
函数类型 (Function Types) 由函数的参数类型和返回类型组成。你可以像使用 Int 或 String 一样使用函数类型,将其作为变量、参数或返回值 [1, 2]。
 
1. 函数类型的构成
函数类型的格式为:(参数类型) -> 返回值类型
  • 无参数无返回值: () -> Void
  • 有参数有返回值: (Int, Int) -> Int
  • 多参数无返回值: (String, Double) -> Void
 
2. 使用函数类型
你可以将函数赋值给变量或常量,并通过该变量调用函数:
 
swift
func addTwoInts(_ a: Int, _ b: Int) -> Int {
    return a + b
}

// 变量 mathFunction 的类型是 (Int, Int) -> Int
var mathFunction: (Int, Int) -> Int = addTwoInts

print(mathFunction(2, 3)) // 输出: 5
请谨慎使用此类代码。
 
3. 函数类型作为参数
你可以将函数作为另一个函数的参数(常用于回调或高阶函数):
 
swift
func printResult(_ mathFunc: (Int, Int) -> Int, _ a: Int, _ b: Int) {
    print("Result: \(mathFunc(a, b))")
}

printResult(addTwoInts, 3, 5) // 输出: Result: 8
请谨慎使用此类代码。
 
4. 函数类型作为返回值
一个函数可以返回另一个函数作为其结果:
 
swift
func stepForward(_ input: Int) -> Int { return input + 1 }
func stepBackward(_ input: Int) -> Int { return input - 1 }

func chooseStepFunction(backward: Bool) -> (Int) -> Int {
    return backward ? stepBackward : stepForward
}
请谨慎使用此类代码。
 
5. 进阶特性
  • 内嵌函数 (Nested Functions): 你可以在函数内部定义函数,并将其类型作为返回值传递出去。
  • 自动闭包 (Autoclosures): 允许你将表达式延迟计算,其类型通常表现为 () -> T
  • 逃逸闭包 (@escaping): 当闭包作为参数传递但在函数返回后才被调用时,需使用此标记 [4, 5]。
欲了解更多详细语法,可参考 Swift 官方文档函数章节。
 

posted on 2026-01-18 00:31  漫思  阅读(2)  评论(0)    收藏  举报

导航