block的声明及使用(基础)
来源:互联网 发布:韩国网络直播间 编辑:程序博客网 时间:2024/05/19 00:12
//// main.m// 8_8_block//// Created by lanou3g on 15/8/8.// Copyright (c) 2015年 lanou3g. All rights reserved.//#import <Foundation/Foundation.h>//block的typedef,在使用的时候,不用*typedef int(^kIntFromString) (NSString*);typedef NSString *(^kAppendingString) (NSString *,NSString*);typedef void(^kSayhi)();//定义函数4部分内容:返回值类型,参数列表,函数名,函数体{实现某个功能的代码段}//练习函数,无参数void sayHi(){ NSLog(@"hihihihihi");}//练习函数,有参数int sum(int a ,int b){ return a+b;}int main(int argc, const char * argv[]) { @autoreleasepool { sayHi(); int a = 1,b = 2; NSLog(@"%d",sum(a,b)); //通过函数指针调用函数,函数名是函数所在存储空间的起始地址 //定义与某个函数相同类型的指针指向函数 void (*p)(); //指向时,没有括号和参数; p = sayHi; //使用时,即使没有参数,也要带上括号 p(); int (*p1)(int ,int ) = sum; NSLog(@"%d",p1(1,5));#pragma mark--------------block定义 //block的本质就是匿名函数 //托字符,向上箭头,在大括号的最后有分号,这是和函数的又一个区别。 /* ^ 返回值类型(参数列表){ }; */ ^ void (){ NSLog(@"hello ,this is dog"); }; //定义block ,实现返回两个数的最大值 ^ int (int a, int b){ return a>b?a:b; }; //定义block,实现返回两个数的乘积 ^ int (int a ,int b){ return a*b; };#pragma mark -----------------block的使用 //定义与block类型相同的变量, 操作block //block 类型:返回值,和参数列表来确定类型。返回值类型不应用括号括起来 //定义block变量操作,定义与block相同的变量来接受操作 void (^sayHiBlock)() = ^ void () { NSLog(@"hihihi"); }; //使用时也得加括号 sayHiBlock(); int (^sumBlock)(int ,int ) = ^int (int a ,int b){ return a+b; }; int (^maxblock)(int ,int ) = ^int (int a ,int b){ return a>b?a:b; }; NSLog(@"%d",maxblock(19,25)); //定义block,传入一个字符串,返回对应的整形数 int (^stringToIntBlock)(NSString *) = ^ int (NSString * s) { return [s intValue]; }; NSLog(@"%d" , stringToIntBlock(@"26353456246234")); //定义block,传入两个字符串,返回拼接后的字符串.后面的block中的返回值类型可以省略 NSString *(^pinjieBlock)(NSString *,NSString *) = ^(NSString *s1,NSString *s2) { NSString *s3 = [s1 stringByAppendingFormat:@"%@",s2]; return s3; }; kSayhi hi = ^() { NSLog(@"汪汪汪"); }; hi(); kIntFromString fstring = ^(NSString *s) { return [s intValue]; }; NSLog(@"%d",fstring(@"999")); kAppendingString pj = ^(NSString *firstName,NSString *lastName){ return [firstName stringByAppendingString:lastName]; }; } return 0;}
0 0
- block的声明及使用(基础)
- IOS 中block 的声明和使用
- block的声明创建以及使用
- Block 的基础及原理
- 基础的类的声明及使用/方法
- Java编程基础篇----变量的声明及使用
- iOS 自定义声明及使用带参block
- Block的命名及使用
- 方法的声明及使用
- IOS中block的声明定义和使用 一
- iOS开发 - Block块的使用(一)基础概念
- iOS——block的基础使用
- java篇 【7】方法(函数)的声明及使用
- 回调函数的声明及使用(序)
- OC中block的使用及注意
- iOS 代码块(block)使用基础
- block代码块基础使用(一)
- Block声明,定义, 最基础的用法学习,很好的一篇文章
- 你愿意做技术的追随者还是引领者
- 获得当前时间
- MZY寻宝
- jquery中对动态生成的标签不会响应click事件
- java生成txt
- block的声明及使用(基础)
- LeetCode | Reverse Words in a String
- Android应用知识架构清单
- 对于差分约束系统的一些理解
- 上海天伦医院黑吗?黑不黑?收费黑吗?
- 国际化
- leetcode 099 —— Recover Binary Search Tree
- java实现文件上传与下载
- IT牛博客:送给想成为下一个牛人的你