14.Swift函数

Swift 函数

在 Swift 中,函数是一种用于执行特定任务或计算特定值的独立代码块。函数可以接受参数并返回一个值,也可以没有参数或返回值。以下是 Swift 中常用的函数操作:

1. 定义函数

可以使用 func 关键字定义函数,指定函数名、参数列表和返回类型(如果有返回值的话)。例如:

swift 复制代码
func greet(person: String) -> String {
   let greeting = "Hello, " + person + "!"
   return greeting
}
2. 调用函数:

可以使用函数名和参数列表来调用函数,并使用返回值(如果有的话)。例如:

swift 复制代码
let message = greet(person: "Alice")
print(message)  // 输出:Hello, Alice!
3. 参数和返回值

函数可以包含零个或多个参数,并且可以返回零个或一个值。参数可以有默认值,也可以使用不定数量的参数。例如:

swift 复制代码
func greet(person: String, from hometown: String = "New York") -> String {
   return "Hello, \(person)! Glad you could visit from \(hometown)."
}
let message1 = greet(person: "Alice")  // 使用默认值
let message2 = greet(person: "Bob", from: "Los Angeles")  // 指定参数值
4. 函数类型

在 Swift 中,函数也是一种类型,可以作为参数传递给其他函数,或作为返回值从函数中返回。例如:

swift 复制代码
func add(_ a: Int, _ b: Int) -> Int {
   return a + b
}
func subtract(_ a: Int, _ b: Int) -> Int {
   return a - b
}
func printResult(_ mathFunction: (Int, Int) -> Int, _ a: Int, _ b: Int) {
   let result = mathFunction(a, b)
   print("Result: \(result)")
}
printResult(add, 5, 3)  // 输出:Result: 8
printResult(subtract, 5, 3)  // 输出:Result: 2
5. 嵌套函数

在 Swift 中,可以在函数内部定义另一个函数,称为嵌套函数。嵌套函数可以访问其外部函数的变量。例如:

swift 复制代码
func chooseStepFunction(backward: Bool) -> (Int) -> Int {
   func stepForward(_ input: Int) -> Int { return input + 1 }
   func stepBackward(_ input: Int) -> Int { return input - 1 }
   return backward ? stepBackward : stepForward
}
let currentValue = 3
let moveNearerToZero = chooseStepFunction(backward: currentValue > 0)
print("Counting to zero:")
// 输出:3 2 1 0
while currentValue != 0 {
   print("\(currentValue)... ")
   currentValue = moveNearerToZero(currentValue)
}

Swift 中的函数功能丰富,支持参数默认值、可变参数、函数类型、嵌套函数等特性,使得函数在编写代码时非常灵活和强大。函数是 Swift 编程的核心之一,用于组织代码、封装逻辑和实现各种功能。

相关推荐
网硕互联的小客服1 小时前
服务器经常出现蓝屏是什么原因导致的?如何排查和修复?
运维·服务器·stm32·单片机·网络安全
witton1 小时前
Go语言网络游戏服务器模块化编程
服务器·开发语言·游戏·golang·origin·模块化·耦合
成都极云科技1 小时前
成都算力租赁新趋势:H20 八卡服务器如何重塑 AI 产业格局?
大数据·服务器·人工智能·云计算·gpu算力
喜欢吃豆1 小时前
从零构建MCP服务器:FastMCP实战指南
运维·服务器·人工智能·python·大模型·mcp
刘阿宾1 小时前
【华为昇腾|CUDA】服务器A6000显卡部署LLM实战记录
服务器·华为·语言模型·gpu算力·kylin
海外空间恒创科技2 小时前
恒创科技:香港站群服务器做seo站群优化效果如何
运维·服务器·科技
搬码临时工2 小时前
内网服务器怎么设置公网远程访问? windows桌面连接和Linux自带SSH外网异地跨网用完整步骤教程
运维·服务器·ssh
用户58126769320083 小时前
记一次腾讯云轻量级服务器 Docker 拉取镜像失败的深度排查
服务器
海外空间恒创科技3 小时前
香港站群服务器与普通香港服务器对比
服务器·git·github
大熊猫侯佩4 小时前
Swift 数学计算:用 Accelerate 框架让性能“加速吃鸡”
算法·swift