In-Out参数:可以更改函数外的值
var a = 3
var b = -100
func 交换值(inout a:Int, inout b:Int) {
let 临时值 = a
a = b
b = 临时值
}
交换值(&a, &b)
a
b
函数类型
func 两个数相加(a: Int, b: Int) -> Int {
return a + b
}
func 两个数相乘(a: Int, b: Int) -> Int {
return a * b
}
var 临时 : (Int, Int) -> Int = 两个数相加 //因为有类型推断,所以”: (Int, Int) -> Int“也可以去掉。
临时(2, 3)
临时 = 两个数相乘
临时(2,9)
函数类型作为参数
func 两个数相乘(a: Int, b: Int) -> Int {
return a * b
}
func 显示相乘结果(a: Int ,b: Int, 相乘函数: (Int, Int) -> Int) {
let 结果 = 相乘函数(a, b)
println(“(a)乘(b)结果是(结果)”)
}
显示相乘结果(2, 5, 两个数相乘)
函数类型作为返回值
func 加一(数: Int) -> Int {
return 数 + 1
}
func 减一(数: Int) -> Int {
return 数 - 1
}
func 判断加减(正: Bool) -> ((Int) -> (Int)) { //返回一个函数
return 正 ? 减一 : 加一
}
var a = 100
let b = 判断加减(a > 0)
while a != 0 {
println(a)
a = b(a)
}