Block变量的的用法,使你的程序看起来清晰明了!
<span style="font-size:24px;">为什么要使用block变量呢?
因为当我们的程序比较繁杂的时候,我们在一个函数中要调用一个函数,还需要在外边来定义,实现,很不方便,但是有了block变量我们就可以在一个函数的内部来定义一个block变量,相当于又在函数的内部来定义了一个函数.
int (^max)(int x,int y) = ^(int x,int y)//求两个数的最大值
{
return x > y ? x :y;
};
NSLog(@"%d",max(5,10));
int (^min)(int x,int y) =^(int x,int y)//求两个数的最小值
{
return x > y ? y : x;
};
NSLog(@"%d",min(5,10));</span>
[cpp] view plaincopy
<pre name="code" class="cpp"><span style="font-size:24px;">其中block变量的类型为:int(^)(int x ,int y);
max 为变量名,一般看函数是什么类型,只需要把函数名去掉然后剩下的就是函数的类型.
^(int x ,int y)
{
return x + y;
}
上面的对block变量进行初始化.</span>
[cpp] view plaincopy
<span style="font-size:24px;">当在block内部使用block外部定义的局部变量时,如果变量没有被__block修饰,则在block内部是只读的,不能对它修改,如果想修改,变量前必须要有__block修饰
__block的作用是告诉编译器,在编译时在block内部不要把外部变量当做常量来使用,还是当做变量来使用.
转载于:https://blog.51cto.com/chenhongyi/1540120
Block变量的的用法,使你的程序看起来清晰明了!相关推荐
- linux C语言多线程库pthread中条件变量的正确用法逐步详解
linux C语言多线程库pthread中条件变量的正确用法: 了解pthread常用多线程API和pthread互斥锁,但是对条件变量完全不知道或者不完全了解的人群. 关于条件变量的典型应用,可以参 ...
- python legb_Python变量作用域LEGB用法解析
这篇文章主要介绍了Python变量作用域LEGB用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 闭包就是, 函数内部嵌套函数. 而 装饰器只 ...
- python语言变量随时命名随时赋值_Python变量及数据类型用法原理汇总
变量(Variable)可以看成一个小箱子,专门用来"盛装"程序中的数据.每个变量都拥有独一无二的名字,通过变量的名字就能找到变量中的数据. 从底层看,程序中的数据最终都要放到内存 ...
- ..以前似乎用作函数或命令,与其在此处作为变量名称的用法冲突?
在使用matlab的过程中,中途定义了一个数组变量,名为'ar',这个变量放在循环里面,写成 ar(j)=ar(j-1)+p(j); 的形式,在运行的过程中报错.报错信息为:"ac" ...
- 用友常见问题:运行时错误91,未设置变量或with block变量
[问题现象] 打印凭证.查询明细账,凭证记账时都有可能出现运行时错误91,未设置变量或with block变量? [问题分析] 一般情况下运行时错误91,未设置变量或with block变量?都是由于 ...
- python变量详解_Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]
您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 1 P ...
- 安装jdk配置环境、cmd命令行测试环境变量配置是否正确及运行java程序、安装IDEA编写代码测试
文章目录 1.安装jdk配置环境 2.cmd命令行测试环境变量配置是否正确及运行java程序 3.安装IDEA编写代码测试 1.安装jdk配置环境 首先打开官网Oracle https://www.o ...
- AppDelegate文件下各方法的用法:(应用程序挂起、复原与终止)
AppDelegate文件下各方法的用法:(应用程序挂起.复原与终止):首次运行: - (BOOL)application:(UIApplication *)application didFinish ...
- TIA博途中通过关键字AT实现变量覆盖的具体方法及示例程序
TIA博途中通过关键字AT实现变量覆盖的具体方法及示例程序 通过关键字 "AT" 可覆盖一个 S7-1200/S7-1500 中已声明的变量. 概述 可以在FB和FC的接口参数区进 ...
最新文章
- JavaScript重载解读
- 华为回应“WIFI联盟撤销会员资格”:不会受个别组织影响
- Activiti(一)SpringBoot2集成Activiti6
- hantomjs能解析出html源码吗,网页源码是js js跳转后才是源码 怎么用易语言写 不使用超文本 有延时...
- Java中的序列问题-2
- L1-022. 奇偶分家-PAT团体程序设计天梯赛GPLT
- javaweb功能模块如何合理设计_如何合理设计恒温恒湿实验室
- android 数组排重方法,js数组去重方法集合 - osc_779ncf3o的个人空间 - OSCHINA - 中文开源技术交流社区...
- Linux防火墙iptables学习笔记(四)iptables实现NAT
- c语言程序设计谭浩强题库,谭浩强c语言程序设计习题答案
- WebEx Recorder
- 鱼眼相机矫正,按经纬度展开为环视图
- 有些微信朋友,每天喜欢发早安、图片给别人,这些人是什么心理?
- 谷粒商城 Day09 首页分类与SpEL动态缓存切面
- yolo系列之yolo v3【深度解析】——讲的挺好,原作者厉害的
- 爱也可以,飘逸洒脱,卓尔不群
- Imaginary number
- Java观察者模式事件委托(通过dota和王者荣耀故事讲解)
- SOCKET_RAW 手动封装TCP协议
- 【自用笔记】 手机号和 身份证号码校验