swift學習第二天

2021-06-23 01:00:43 字數 1601 閱讀 7434

函式

函式是執行特定任務的**自包含塊。通過給定乙個函式名稱標識它是什麼,並在需要的時候使用該名稱來呼叫函式以執行任務。

swift的統一的功能語法足夠靈活的,可表達任何東西,無論是不帶引數名稱的簡單的樣式函式,還是帶本地和外部引數名稱的複雜的objective-c樣式方法。引數可為簡單函式呼叫提供預設值,並且可以被作為輸入/輸出引數傳遞,在函式執行完成時修改傳遞來的變數。

swift中的每個函式都有乙個型別,包括函式的引數型別和返回型別。你可以像使用swift中其他型別一樣使用該型別,這使得它很容易將函式作為引數傳遞給其他函式,甚至從函式中返回函式型別。函式也可以被寫入其他函式中以在函式作用於中封裝有用的功能。

定義和呼叫函式

當你定義乙個函式時,你可以選擇性地定義乙個或多個名稱,型別值作為函式的輸入(稱為形參),或者定義乙個函式結束後返回值的型別(稱之為返回型)。每乙個函式都有乙個函式名,用來描述了函式執行的任務。要使用乙個函式時,可使用它的名稱進行「呼叫」,並通過它的輸入值(稱為實參--argument)來匹配函式的引數型別。乙個函式的實參(arguments)必須始終和函式形參(parameter)順序一致。

例如在下面的例子中被呼叫的函式greetingforperson,像它描述的那樣 -- 它需要乙個人的名字作為輸入並返回一句針對那個人的問候語。為了實現該功能,你定義了乙個輸出引數--乙個名為personname的字串值,以及乙個string返回型別,包含乙個針對那個人的問候語:

func sayhello(personname: string) -> string    

閉包表示式

巢狀函式是一種在較複雜函式中方便進行命名和定義自包含**模組的方式。 當然,有時候撰寫小巧的沒有完整定義和命名的類函式結構也是很有用處的,尤其是在處理一些函式並需要將另外一些函式作為該函式的引數時。

閉包表示式是一種利用簡潔語法構建內聯閉包的方式。 閉包表示式提供了一些語法優化,使得撰寫閉包變得簡單明瞭。 下面閉包表示式的例子通過使用幾次迭代展示了 sort 函式定義和語法優化的方式。 每一次迭代都用更簡潔的方式描述了相同的功能。

閉包表示式語法

閉包表示式語法有如下一般形式:  

閉包表示式語法可以使用常量、變數和 inout 型別作為引數,但不提供預設值。 也可以在引數列表的最後使用可變引數。元組也可以作為引數和返回值。

下面的例子展示了之前 backwards 函式對應的閉包表示式版本的**:

reversed = sort(names, ) 

需要注意的是內聯閉包引數和返回值型別宣告與 backwards 函式型別宣告相同。 在這兩種方式中,都寫成了 (s1: string, s2: string) -> bool型別。 然而在內聯閉包表示式中,函式和返回值型別都寫在大括號內,而不是大括號外。

閉包的函式體部分由關鍵字 in 引入。 該關鍵字表示閉包的引數和返回值型別定義已經完成,閉包函式體即將開始。

因為這個閉包的函式體部分如此短以至於可以將其改寫成一行**:

reversed = sort(names,  ) 

swift學習第二天

每天學習,加油!varstringvar hello world varstringvar2 nsstring i love you swift 字串不需要新增 字串字元 varvarparam uint16 9 varvarparam1 uint16 10 var varparam2 uint32...

Swift學習第二天 物件導向

playground noun a place where people can play import uikit var str hello,playground 類和屬性 class role 成員方法 func playgame string 靜態方法 static func playbol...

學習第二天

linux系統的檔案型別及許可權的相關知識 1.普通檔案 l 連線檔案 d 資料夾 表示不同的檔案型別 2.檔案許可權 r 可讀 w 可寫 x 可執行 3.chmod 修改檔案許可權,修符號或者使用八進位制 linux的基礎命令 cd 切換目錄 ls 檢視內容 表示當前目錄 上一級目錄等 touch...