block(代码块)的一部分简单了解(一)
2016-02-15 10:33
387 查看
代码的简单了解
#import <Foundation/Foundation.h> int c=0; int main(int argc, const char * argv[]) { @autoreleasepool { //block声明格式:返回值类型(^block名字)(形参列表) int (^myFun)(); // block实现:block名字=^(形参列表){}; myFun=^(){ NSLog(@"这是一个代码块"); return 1; }; //调用:block名称(实参列表),有返回值的block,可以用一个变量接收 int a=myFun(); NSLog(@"%d",a); //有返回值,有形参,声明和实现放一起 int (^myBlock)(int a,int b)=^(int a,int b){ return a+b; }; //调用 int sum=myBlock(10,20); NSLog(@"%d",sum); //返回类型是字符串 NSString *(^名字)(形参列表) NSString *(^myBlock1)(NSString *s)=^(NSString *s){ NSLog(@"字符串%@",s); return s; }; myBlock1(@"456"); //有一个局部变量,要在block进行值的改变 __block int b=0; void (^myBlock2)()=^(){ b++; NSLog(@"%d",b); }; //有一个全局变量,在block进行值的改变 void (^myBlock3)()=^(){ c++; }; //例如 //声明一个square的Block Pointer,其所指向的Block有一个int输入和int输出 int (^square)(int); //将Block实体指定给square square = ^(int a){ return a+a ; }; //调用方法。 int y = square(6); NSLog(@"%d", y); } return 0; }
相关文章推荐
- VS2013 自动添加头部注释 -C#开发
- quartz spring 实现动态定时任务
- python模块--random
- 基于python yield机制的异步操作同步化编程模型
- 利用python抓取京东的数据
- Spring 框架
- eclipse导入源码
- 个人学习-java-子类对象实例化
- RxJava 学习详解
- php常见问题
- java.util.Arrays的使用
- Asp.net: WebForm基础上构建Mvc的方法
- C# 线程同步示例
- Java运算符优先级
- C#事务的使用
- 使用 matplotlib 绘制文氏图(venn)
- Java 回调机制的理解
- php 获取汉字拼音首字母的函数
- Ruby on Rails在Ping ++ 平台实现支付
- Ruby Array