006_swift 函数与闭包

//
//  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

 

你可能感兴趣的:(#,swift)