【iOS】Swift之函數(shù)閉包,類似Objective-c中的Block

前言

  • 1.閉包是功能性子包含模塊,可以在代碼中被傳遞和使用。在Swift中的閉包與C和Obective-C 中的block 比較相似,通常我們這么使用的。

  • 2.閉包的第一種形式: 全局函數(shù)是一個有名字但不會捕獲任何的的閉包,

{ 
(參數(shù) : 類型) - > 返回類型 in
        執(zhí)行方法
        return 返回類型;

 let arr = GetList( [1,2,3,4]), {(s:int) in return s>2} )
        println(arr)
}
  • 3.上面的代碼可以看出,{(s:int) in return s>2}就是一個閉包的實現(xiàn)。GetList參數(shù)Pre:(int)->Bool 是一個函數(shù),沒有實現(xiàn),在調(diào)用的時候傳人閉包 {(s:int) in return s>2} 來實現(xiàn)具體的算法,{(s:int) in return s>2}閉包參數(shù)為整形,返回值為布爾類型;

示例

  • 1.跟在OC當中使用一樣,我們的首先定義一個Block 類型,這里是定義一個閉包類型;
  • 2.聲明一個block變量,同樣的這里定義一個閉包函數(shù)變量;
///  這是一個函數(shù)閉包變量
typealias  myfunction = (SXstr:NSString) ->Void;
//  定義函數(shù)變量
var myBlock = myfunction?()
  • 3.這里示例在一個點擊事件中,回調(diào)一個字符串,(SXstr: "你好!")作為示例
 /**
     在一個點擊事件中傳遞閉包函數(shù)的變量:
     */
    func Tap()->Void
    {
       //值傳遞字符串
        myBlock!(SXstr: "你好!")
        self .dismissViewControllerAnimated(true, completion: nil)
    }
  • 4.函數(shù)作為值調(diào)用閉包函數(shù)。
    func Long(Block:myfunction)->Void
    {
        myBlock = Block;
    }
  • 5.調(diào)用閉包函數(shù)
  // 調(diào)用閉包函數(shù)
        myVC.Long { (SXstr) -> Void in
          
        print(SXstr)
           
   }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,654評論 19 139
  • 86.復合 Cases 共享相同代碼塊的多個switch 分支 分支可以合并, 寫在分支后用逗號分開。如果任何模式...
    無灃閱讀 1,560評論 1 5
  • 今天的博客算是比較基礎(chǔ)的,還是那句話,基礎(chǔ)這東西在什么時候都是最重要的。說到函數(shù),只要是寫過程序就肯定知道函數(shù)是怎...
    攞你命3OOO閱讀 687評論 0 1
  • 以下翻譯自Apple官方文檔,結(jié)合自己的理解記錄下來。翻譯基于 swift 3.0.1 原文地址 Closure...
    藝術(shù)農(nóng)閱讀 1,713評論 0 3
  • 書摘 盡管“努力”是必須的,應當?shù)?,但可惜卻不是天生的。每個人天生所擁有的是與“努力”相悖的一個習慣——“懶惰”。...
    TDann閱讀 186評論 0 0

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