Object-C_Block小結(jié)

//

//main.m

//Block

//

//Created by DioneFlora on 16/10/20.

//Copyright (c) 2016年DioneFlora. All rights reserved.

//

#import <Foundation/Foundation.h>

//block塊(數(shù)據(jù)類型):封裝了一段具有特定功能的代碼段

//函數(shù)有函數(shù)名,block是沒有名字的,也可以叫做匿名函數(shù);函數(shù)不能作為參數(shù)傳遞,block可以作為參數(shù)傳遞

//return(如果返回值類型不是void就必須將返回值return出去)

//形式:

/*

返回值類型(^block變量名)(參數(shù)列表)=^(參數(shù)列表){

代碼段

*/

//調(diào)用

//block變量名()

//這是一個(gè)無參無返的block

voiddemoOne(){

//無參無返的block(寫一個(gè)block,用for循環(huán)打印三遍“Hello World!”)

//定義一個(gè)block

void(^myBlock)() = ^(){

?for(inti =0; i <3; i++) {

NSLog(@"Hello World!");

?}

};

//調(diào)用一個(gè)block

myBlock();

}

//這是一個(gè)有參無返的block

/*

void(^block名)(參數(shù)列表)=(參數(shù)列表){}

*/

voiddemoTwo(){

//定義一個(gè)block,用for循環(huán)打印N次Hello World!,n用鍵盤輸入

void(^youBlock)(intn) = ^(intn){

for(inti =0; i < n; i++) {

NSLog(@"Hello World!");

}

};

intnumber;

NSLog(@"請(qǐng)輸入一個(gè)整數(shù):\n");

scanf("%d",&number);

//調(diào)用一個(gè)block

youBlock(number);

}

//無參有返的block

/*

返回值類型(^block名)()=^(){}

*/

voiddemoThree(){

int(^peopleCount)() = ^(){

return28;

};

//調(diào)用

intcount = peopleCount();

NSLog(@"count = %d",count);

//定義一個(gè)block返回字符串hello

char* (^string)() = ^(){

return"hello";

};

char*str = string();

NSLog(@"str = %s",str);

}

voiddemoFour(){

//有參有返的block

//寫4個(gè)block來做四則運(yùn)算(+,-,*,/),a,b兩個(gè)值通過鍵盤輸入

int(^addCount)(intn,intm) = ^(intn,intm){

returnn + m;

};

int(^delCount)(intn,intm) = ^(intn,intm){

returnn - m;

};

int(^mulCount)(intn,intm) = ^(intn,intm){

returnn * m;

};

int(^chuCount)(intn,intm) = ^(intn,intm){

if(m ==0){

NSLog(@"除數(shù)不能為0");

return0;

}

returnn / m;

};

inta,b;

NSLog(@"請(qǐng)輸入兩個(gè)數(shù):\n");

scanf("%d%d",&a,&b);

intadd = addCount(a,b);

NSLog(@"add = %d",add);

intdel = delCount(a,b);

NSLog(@"del = %d",del);

intmul = mulCount(a,b);

NSLog(@"mul = %d",mul);

intchu = chuCount(a,b);

NSLog(@"chu = %d",chu);

}

//diyBlock是給int(^)(int a,int b)這種block類型定義的一個(gè)新名字,以后我們使用diyBlock就表示int(^)(int a,int b)這個(gè)類型

typedefint(^diyBlock)(inta,intb);

voiddemoFive(){

diyBlock addBlock = ^(inta,intb){

returna + b;

};

diyBlock jianBlock = ^(inta,intb){

returna - b;

};

diyBlock chengBlock = ^(inta,intb){

returna * b;

};

diyBlock chuBlock = ^(inta,intb){

returna / b;

};

inta,b;

NSLog(@"請(qǐng)輸入兩個(gè)數(shù):\n");

scanf("%d%d",&a,&b);

intadd = addBlock(a,b);

NSLog(@"add = %d",add);

intjian = jianBlock(a,b);

NSLog(@"jian = %d",jian);

intcheng = chengBlock(a,b);

NSLog(@"cheng = %d",cheng);

intchu = chuBlock(a,b);

NSLog(@"chu = %d",chu);

}

intmain(intargc,constchar* argv[]) {

@autoreleasepool{

demoOne();

demotwo();

demoThree();

demoFour();

demoFive();

}

return0;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 01-常量與變量 學(xué)習(xí)swift第一步打印Hello World print("Hello World") swi...
    iOS_恒仔閱讀 5,369評(píng)論 2 19
  • //block塊(數(shù)據(jù)類型) 封裝的一段具有特定功能的代碼段 //函數(shù)有函數(shù)名,block沒有名字,也可以叫做匿名...
    冰凡513閱讀 2,448評(píng)論 0 0
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 2,241評(píng)論 0 7
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,297評(píng)論 0 52
  • 經(jīng)過日夜奔波,我終于看到了我做夢(mèng)都想來到的迪士尼樂園! 剛到門口,我眼前一亮啊,這里真美啊。一簇簇五顏六色...
    帥氣的黃子陽閱讀 320評(píng)論 1 2

友情鏈接更多精彩內(nèi)容