iOS學習筆記---oc語言第六天

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   strong   

Block 、數組進階

block本質上就是匿名函數(沒有名稱的函數)

block文法和函數指標很相似

回顧函數

 

函數:C語?中,實現某一類功能的程式碼片段。

 

完整的函數包含兩部分:函式宣告、函數定義

 

函式宣告,即函數原型。例如:int sum(int x,int y);具有兩個整型參 數,一個整型傳回值的函數。

 

函數定義,即函數實現。例如:int sum(int x,int y){
    retrun x + y;
     }

回顧函數指標

函數指標(變數):存放函數地址(函數名)的指標變數。

int (*p)(int x,int y) = sum;

函數指標類型:int (*)(int x,int y) 即:指向 兩個整型參數,一個整型傳回值函數 的指標。

函數指標變數:p 函數指標的值:sum

Block

匿名函數:沒有名稱的函數。 例如 int (int x, int y)

因為Block是匿名函數,block變數存放的函 數的實現,通過block變數能直接調?用函數

 沒有名稱的函數應該如何調?用?(有名稱的話,可以直接調?用,也

可以通過函數指標來調?用)

    int (^block1)(int,int) = ^int (int x,int y)    {        return x + y;    };    //類型 int(^)(int,int)    //變數名 block1    //初始值//    ^int (int x,int y)//    {//        return x + y;//    }    typedef int (^BlockType)(int,int);    BlockType block2 = ^ int (int x,int y){        return x * y;    };    //給block 變數賦值時  值的特點:以 ^ 開頭 函數的定義(實現),去掉函數名

block函數定義中傳回值類型  可以省略  通常都會省略

 

 1     int (^aa)() = ^(){ 2         return 10; 3     }; 4     //當block沒有參數的時候可以把函數定義後面的()省略掉 5 //    int (^aa)() = ^{ 6 //        return 10; 7 //    }; 8     NSLog(@"%d",aa()); 9     void (^hello)() = ^{10         NSLog(@"hello world");11     };12     hello();//沒有傳回值沒有參數的block

 在block體中可以直接使用外部變數,但是不能修改這個變數 想要修改在變數前面加__block;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.