微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

6.6 Swift嵌套函数

/**

嵌套函数

实际上呢,嵌套函数应该放在上一张来讲啦,这里我们放在闭包这里来讲

为了讲解在闭包中的捕获上下文的值

闭包捕获上下文的值,实际上就是嵌套函数

*/

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 举报,一经查实,本站将立刻删除。

相关推荐