iOS開發 列舉型別和閉包

2021-09-30 13:19:07 字數 1075 閱讀 5820

首先來說列舉型別~

列舉型別的宣告方式:

enum toward

列舉型別是用於別名定義一些有限的型別和一些複雜的資料結構。列舉型別的使用,能讓你的**結構更分明,可讀性也得到提公升。

另外,如果需要給列舉中的列舉值賦值,必須指定列舉的型別:

enum toward:int

極好的事情是,enum中的case下,不僅僅可以是變數,而且可以是函式:栗子如下

private

enum

op: customstringconvertible

該enum的宣告中並木有對各個case賦值,只是規定了其變數或者函式的型別。(相當於是乙個模版)

在需要的時候,對op.binaryoperation(或者其他兩個)賦值即可。栗子:

knownops["÷"] = op.binaryoperation("÷")

這裡使用了閉包,且是尾部閉包,下面來說閉包:

閉包可以捕獲並儲存其上下文中任意常量和變數的引用,這就是所謂的閉合幷包裹著這些常量和變數,俗稱閉包。

重要的是,閉包是引用型別。

下面舉乙個栗子:

fun plus(amount:int) -> ()->int

return incrementor}

可見,該函式plus的返回值是乙個函式。而plus內部還有乙個變數total用於儲存累加的結果

下面進行某些神奇的操作~

let plusten = plus(10)

swift的型別推倒,會認定,plusten就是乙個函式,該函式的引數為空,並返回乙個int型別的數值(incrementor

)這樣如果我反覆執行著:

plusten()

plusten()

plusten()

那麼返回的值將會是10,20,30。。。

這個plusten就是乙個閉包~

如果:let plusten1 = plusten

那麼,在執行plusten1的時候,返回值將是40

因為閉包是引用型別!

今天就到這裡啦,作為乙隻兔子要去蹦躂一會兒了~

IOS開發 列舉型別使用

一般情況下,我們採用c風格的enum關鍵字可以定義列舉型別。enum uiviewanimationtransition typedef 的作用是宣告別名 typedef nsuinteger uiviewautoresizing 使用nsuinteger的地方可以使用uiviewautoresiz...

16 swift開發iOS 閉包

swift 閉包 閉包 closures 是自包含的功能 塊,可以在 中使用或者用來作為引數傳值。swift 中的閉包與 c 和 objective c 中的 塊 blocks 以及其他一些程式語言中的 匿名函式比較相似。全域性函式和巢狀函式其實就是特殊的閉包。閉包的形式有 全域性函式 巢狀函式 閉...

iOS 列舉型別

一.定義 typedef enumtypes 在結尾時,使用分號來結束 enum相當於 define的用法,只是相對來說簡單一些。使用了enum之後,在使用時,該型別的變數值只能在enum定義裡面選取。二.如何使用 我們最終的目的,是要把學習的內容在自己寫 的時候融入進去,那麼在用的時候是怎麼用的呢...