iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 9
0

https://ithelp.ithome.com.tw/upload/images/20181024/20110801VmY4FQptuq.png

Function 類型

function也是一種型別,由參數型別及回傳值型別所組成:

func doSomthing(a: String, b: Int) -> String{ 內部程式 }

https://ithelp.ithome.com.tw/upload/images/20181024/20110801eRoSFeFU8m.png

上面的 function 標示 ( String, Int ) -> String,,就是只有兩個分別為 String型別及 Int 型別的參數,然後回傳一個型別為 String 的值。

func didSomthing(){ 內部程式 }

這個 function 也可以標註為 ( ) -> ( )。實際上沒有回傳值的 function,會回傳一個值,叫 Void

使用 function 類型

剛剛在前面提過 function 是一種型別,所以可以變數或常數宣告成為一個函式,然後可以指派給一個適當的 function。

https://ithelp.ithome.com.tw/upload/images/20181024/201108014I815LaTWM.png

上面的例子可以這樣讀:一個叫做 mathFunction 的變數,他能一次接受兩個 Int 型別並回傳一個 Int 值,將這個新的變數指向 addTwo

現在我們可以利用 mathFunction 來調用函數

https://ithelp.ithome.com.tw/upload/images/20181024/20110801wqoAg5FeN7.png

因為 mathFunction 是變數,所以不同 function 有相同型別、回傳值型別,就可以改變新的變數指向

https://ithelp.ithome.com.tw/upload/images/20181024/201108014L3bwqChov.png

使用 function作為參數類型

我們可以利用 function 的類型作為其他 function 的參數類型,這可以讓我們將 printMathResult 的一部份的操作交給呼叫 function的人來做

https://ithelp.ithome.com.tw/upload/images/20181024/20110801OLi6HWQr4j.png

function 型別作為回傳型別

function 可以作為另一個 function 的回傳:

https://ithelp.ithome.com.tw/upload/images/20181024/2011080163U2GGhWpc.png

Nested Function

目前為止所使用的 function 都是全域函數 ( Global Function ),定義在全區域中,在什麼地方都可以使用。而將一個 function 包在另一個 function中,則叫做巢狀函數 ( Nested Function ),被包在裡面的函式只能在裡面使用,也可以回傳給其他地方使用。

https://ithelp.ithome.com.tw/upload/images/20181024/201108014Mns5HM2DK.png

今天的 Function ( 2 ) 就到這裡囉!如果有其他的問題歡迎留言或是寄信給我!(*´∀`)


上一篇
Swift4.2 Day-08 Function ( 1 )
下一篇
Swift4.2 Day-10 Closure ( 1 )
系列文
菜比八iOS程式開發30天自我挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言