/**
嵌套函数
实际上呢,嵌套函数应该放在上一张来讲啦,这里我们放在闭包这里来讲
为了讲解在闭包中的捕获上下文的值
闭包捕获上下文的值,实际上就是嵌套函数
*/
var array = [20,2,3,70,8]
bubbleSortFunc(array: &array)
print("----------------->")
showArray(array: array)
func showArray(array: [Int]) -> Void {
for x in array {
print("\(x)")
}
}
// 函数是全局的
func swapValue(a: inout Int,b: inout Int) {
let t = a
a = b
b = t
}
// 写个冒泡排序, 用闭包表达式作为回调
func bubbleSortFunc(array:inout [Int]) {
let cnt = array.count
// 函数是局部的,作用域只在这个内部使用,仅仅为这个函数服务
func swapValue2(a: inout Int,b: inout Int) {
// 我们可以访问这个函数的局部变量,这个就是值捕获
print("数组的个数\(cnt)")
let t = a
a = b
b = t
}
for (i,value) in array.enumerated()
{
if i > 0
{
for (j,value2) in array.enumerated()
{
// print("j=====\(j)")
// print("====\(cnt - i)")
if j < cnt - i
{
if array[j] > array[j+1]
{
// 换成用函数
// swapValue(a: &array[j],b: &array[j+1])
swapValue2(a: &array[j],b: &array[j+1])
// let t = array[j]
// array[j] = array[j+1]
// array[j+1] = t
}
}
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。