暂时为了找工作,又将OC拿过来重新看看
block是OC中的名称,闭包是Swift中的名称
这篇博客只给两段代码,介绍在声明方法时,传入block和闭包
首先看block
/**
* 在方法中传入block
* (void (^)(int a, int b))calculate
* block分解:
* 首先(参数类型)参数名称
* 参数类型 = void (^)(int a, int b),这是一个block声明方式
* 参数名称 = calculate
* 实现的功能,a、b数值互换
*/
- (void)calculateWithNum:(int)a andNum:(int)b withBlock:(void (^)(int a, int b))calculate {
a = a + b;
b = a - b;
a = a - b;
calculate(a, b);
}
再看闭包
/**
在方法中传入闭包
calculate: (a: Int, b: Int) ->Void
闭包分解:
参数名称: 参数返回值
参数名称 = calculate
参数返回值 = (a: Int, b: Int) ->Void
实现功能:a,b数值互换
*/
func calculateWithNum(a: Int, b: Int, calculate: (a: Int, b: Int) ->Void) {
a = a + b;
b = a - b;
a = a - b;
calculate(a, b);
}