Z
ZHANK
编程在线教程Swift 教程函数定义与参数
函数与闭包

函数定义与参数

func 定义、参数标签/内部名、默认值、可变参数、inout 修改

函数定义与参数

Swift 函数特色:参数标签(外部名/内部名分离)、默认值、inout 修改外部变量。

学完本章你将: 掌握 func 定义、参数标签、inout、可变参数。


函数定义

swift
func greet(person: String) -> String {
    return "Hello, \(person)!"
}

// 无返回值
func sayHello() {
    print("Hello")
}

// 隐式返回(单表达式)
func add(_ a: Int, _ b: Int) -> Int { a + b }

参数标签

swift
// 外部标签 + 内部名
func greet(to person: String, from city: String) {
    print("\(person) 来自 \(city)")
}

greet(to: "小明", from: "北京")  // 调用时用外部标签

// 省略外部标签
func multiply(_ a: Int, _ b: Int) -> Int {
    a * b
}
multiply(3, 5)  // 不写参数名

// 默认值
func greet(name: String, greeting: String = "Hello") {
    print("\(greeting), \(name)!")
}
greet(name: "小明")               // "Hello, 小明!"
greet(name: "小红", greeting: "Hi") // "Hi, 小红!"

inout 与可变参数

swift
// inout —— 修改外部变量(传引用)
func swap(_ a: inout Int, _ b: inout Int) {
    let temp = a
    a = b
    b = temp
}

var x = 10, y = 20
swap(&x, &y)   // x=20, y=10

// 可变参数
func sum(_ numbers: Int...) -> Int {
    numbers.reduce(0, +)
}
sum(1, 2, 3, 4, 5)  // 15