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

}

}

}

}

}

}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...