Day 8 Swift语法-进阶篇(1/5)-Closures

今天讲一下闭包,有关於闭包的用法:

宣告:

{(参数) -> 返回值 in
    //你要做的事情
}

闭包其实跟func很像,简单说他就是一个没有名字的function,而且闭包可以当作一个Value来传递,function则不行

func写法:

func sayhello (){
    print("hello world")
}
sayhello()

闭包写法:

let helloWorld = {(_ sayHello: String) -> String in
    return sayHello
}
print(helloWorld("hello world"))

结果如下:

捕获值:这部分说明的是一个闭包,可以从程序码里的上文跟下文,捕获已经被我们定义过的变数,即使被定义过的变数的原作用区域已经不存在,闭包依然可以在函数里面修改这些值,例如:

func Example(Increment add: Int) -> () -> Int {
    var total = 0
    func increment() -> Int {
        total += add

        return total

    }
    return increment
}
let addTen = Example(Increment: 10)

addTen()

addTen()

addTen()

let addFive = Example(Increment: 7)

addFive()

addFive()

addFive()

执行後如下:


<<:  强连通元件

>>:  人脸辨识的流程--人脸识别

Angular 深入浅出三十天:表单与测试 Day02 - Template Driven Forms 实作 - 以登入为例

今天要来用 Template Driven Forms 的方式实作一个简单的登入系统,撇开 UI ...

[Day4] 自我必备掌握力:了解公司的运作

公司的IT部门 IT不是超然於世的部门,而是运作於公司的一部分 甫加入公司的时候,已经有一个又一个的...

Day07:Boardcast Event(推播事件)

全文同步於个人 Docusaurus Blog 当某个使用者输入讯息发送到 server 後,若当...

JavaScript入门 Day18_function介绍

今天要讲的是function,那他是什麽呢 他就像是一段已经写好的code,然後当我们需要他的时候 ...

Day 1:同步与非同步执行

Hi 各位好,又到了我们一年一度的 iT邦铁人赛的挑战,这次我所挑战的主题是 Kotlin 中用来处...