面试题答案
一键面试以下是Objective-C代码实现:
#import <Foundation/Foundation.h>
// Block声明
typedef void(^MathCalculationBlock)(int result);
// 封装数学计算功能(加法)
void performMathCalculation(int num1, int num2, MathCalculationBlock block) {
int result = num1 + num2;
if (block) {
block(result);
}
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// Block定义和调用
performMathCalculation(5, 3, ^(int result) {
NSLog(@"计算结果: %d", result);
});
}
return 0;
}
Block声明、定义和调用的关键步骤:
- 声明:
- 使用
typedef
关键字为Block类型定义一个别名,方便后续使用。例如typedef void(^MathCalculationBlock)(int result);
定义了一个名为MathCalculationBlock
的Block类型,它接受一个int
类型的参数且没有返回值。
- 使用
- 定义:
- 在
performMathCalculation
函数中,定义了Block类型的参数block
。在函数内部实现具体的数学计算(这里是加法),并在适当的时候调用Block。
- 在
- 调用:
- 在
main
函数中,调用performMathCalculation
函数,并传入具体的参数和Block的实现。在Block实现中,处理计算结果,这里通过NSLog
打印结果。
- 在