SwiftPamphletApp icon indicating copy to clipboard operation
SwiftPamphletApp copied to clipboard

函数 func

Open ming1016 opened this issue 4 years ago • 1 comments

函数可以作为另一个函数的参数,也可以作为另一个函数的返回。函数是特殊的闭包,在类、结构体和枚举中是方法。

// 为参数设置默认值
func f1(p: String = "p") -> String {
    "p is \(p)"
}

// 函数作为参数
func f2(fn: (String) -> String, p: String) -> String {
    return fn(p)
}

print(f2(fn:f1, p: "d")) // p is d

// 函数作为返回值
func f3(p: String) -> (String) -> String {
	return f1
}

print(f3(p: "yes")("no")) // p is no

函数可以返回多个值,函数是可以嵌套的,也就是函数里内可以定义函数,函数内定义的函数可以访问自己作用域外函数内的变量。inout 表示的是输入输出参数,函数可以在函数内改变输入输出参数。defer 标识的代码块会在函数返回之前执行。

ming1016 avatar Nov 16 '21 06:11 ming1016

// _ 使函数调用时不显示参数标签
func f4(_ p: String) {}
f4("p")

// inout修改参数值
func swap(a: inout Int, b: inout Int) {
    let tmp = a
    a = b
    b = tmp
}

var a = 1, b = 2
swap(a: &a, b: &b)
print("a = \(a), b = \(b)") // a = 2, b = 1 

Sinter0 avatar Dec 12 '21 11:12 Sinter0