//
// main.swift
// 006_函数和闭包
//
// Created by liuan on 2020/3/22.
// Copyright © 2020 liuan. All rights reserved.
//
import Foundation
//闭包
//(Closures 是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。和oc中的代码块(blocks)i以及其他一些编程语言中的匿名函数比较相似
// 逃逸闭包
// 非逃逸闭包,默认非逃逸闭包,如果要保证做到异步的调用,那么要在闭包的菜蔬钱加@escaping标记
//函数
func test1(){
print("无参数 无返回值")
}
test1()
func test2(par:Int){
print(par)
}
test2(par: 20)
func test3(par1:Int,par2:Int)->Int{
return par1+par2;
}
let ret = test3(par1: 1, par2: 20)
print(ret)
//闭包
let closure={
print("----")
}
closure()
let closure1={(par:Int) in print(par)}
closure1(10);
let closure3={(par1:Int,par2:Int)->Int in
return par1+par2;
}
print(closure3(19,29))
//闭包作为函数参数
func test4(par:Int,closure:@escaping(Int)->())->Int{
closure(par)
return par*par;
}
let ret2=test4(par: 19){(par1:Int)
in print(par1*par1*par1)
}
print(ret2)
效果展示
无参数 无返回值
20
21
----
10
48
6859
361