swift5 基本語法 閉包

2021-10-16 01:11:54 字數 1396 閱讀 4536

在swift中,說到閉包表示式(closure expression),我們就能想起來objective-c中的block,確實兩者之間非常相似,功能也基本相同,都可以在**中使用或者用來作為引數傳值。我們一起來學習下swift中的閉包用法。

在swift中,可以通過func定義乙個函式,也可以通過閉包表示式定義乙個函式。

1.閉包語法

例1:

var sumclosure = 

sumclosure(10,20)

2.尾隨閉包

尾隨閉包是乙個書寫在函式括號之後的閉包表示式,函式支援將其作為最後乙個引數呼叫。

例2:

func somefunctiontrailingclosure(closure: () -> void) 

// 以下是【不使用】尾隨閉包進行函式呼叫

somefunctiontrailingclosure(closure: )

// 以下是【使用】尾隨閉包進行函式呼叫

somefunctiontrailingclosure()

3.自動閉包 @autoclosure

比如,定義了乙個函式,函式有兩個引數,第乙個是乙個int值,第二個引數是()->int 這樣乙個無引數的閉包。

//比較第乙個資料》0 返回第乙個數,否則返回第二個數

func compare(_ a : int, _ b : () -> int) ->int

let result1 = compare(-10)

print(result1)

正常情況下我們根據xcode提示,直接回車的話是這樣呼叫的,我們可以簡化下

let result2 = compare(-10, )

print(result2)

但是這種可讀性又太差了,所以我們可以在閉包前面加上@autoclosure

//比較第乙個資料》0 返回第乙個數,否則返回第二個數

func compare(_ a : int, _ b : @autoclosure () -> int) ->int

let result1 = compare(10, 20)

小結

public func ?? (optional: t?, defaultvalue: @autoclosure () throws -> t?) rethrows -> t?

swift5基礎語法

先從最基本的常量 變數說起 新建變數 新建變數的語法 var keyword 變數名 資料型別 變數值 swift會自動判斷型別,所以資料型別可以省略 var str hello,playground print str var greeting hello swift developers pri...

Swift特有語法 閉包

1.閉包定義 閉包 閉包是自包含的函式 塊,可以在 中被傳遞和使用。閉包可以捕獲和儲存其所在上下文中任意常量和變數的引用。這就是所謂的閉合幷包裹著這些常量和變數,俗稱閉包。swift 會管理在捕獲過程中涉及到的所有記憶體操作。閉包採取如下三種形式 2.sort函式 sorted 函式 the sor...

Swift 5 可選型別 Optionals

var name string?jack var age int?age 10var age1 int?age1 age1 10age1 確定可選性不為空的時候才可以強制解包if let num int 123 num 0else a b a 是可選項 b 是可選或者不是可選 a和b的儲存型別必須相...