iOS开发学习第十九课——匿名函数 Block

//Block的定义:Block也是一个函数,称为一个语法块(实现某个特定功能),只不过Block是一个比较特殊的函数,没有函数名称的函数,又叫做匿名函数
格式:
返回值类型 (^Block变量名称) (参数列表) = 返回值类型(可以省略) ^(参数列表(一定要有参数名称))
{
         Block的实现部分
         };
         
#import
#import "Person.h"
//Block重定义
typedef int (^newBlock)(int ,int);
int count = 18;//定义一个全局变量,不管在 main函数内部还是在外部都可以访问和使用
int main(int argc, const char * argv[]) {
   
 @autoreleasepool {
        
//Block实现求两个数之间的最大值
        int (^maxBlock)(int,int) = ^(int a,int b){
           
 return a > b ? a : b;
        };
//分号不可以省略,表示Block语法的结束
       
 //Block调用  使用Block变量名(参数)调用
       
 int max = maxBlock(17,10);
       
 NSLog(@"max = %d",max);
       
       
 //无参无返回值
       
 void (^sayHiBlock) () = ^(){
           
 NSLog(@"Hello!");
        };
       
 //Block调用
        sayHiBlock();
//此时括号不能省略
       
       
       
       
 __block int num3 = 100;//定义一个局部变量
       
 //有参数无返回值
       
 void (^printfBlock) (int) = ^(int number){
           
 NSLog(@"number = %d",number);
           
 //改变全局变量count的值
           
 count++;//Block语法块(实现部分)可以修改和访问全局变量
            num3++;
//Block当中,不可以直接修改局部变量的值,如果想修改局部变量的值则需要在局部变量之前加上__block修饰,其作用是__block修饰符可以让Block正常访问到其它函数的局部变量以及修改,保护局部变量的可读性,(保护局部变量还能被其他函数访问以及修改)
        };
       
 //Block调用
        printfBlock(78);
       
 printf("count = %d\n",count);
       
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值