iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 8
0

https://ithelp.ithome.com.tw/upload/images/20181023/20110801C075FDSXJ3.png

Function 定義

function 是一個獨立的程式碼區塊,來完成特定任務,如果都你需要重複使用到某些功能時,可以將這些功能寫成一個 function 來簡化程式碼。

function 格式

func 函式名稱(參數: 參數名稱) -> 回傳值的型別 { 內部程式碼 return 回傳值 }

最簡單格式

func 函式名稱() { 內部程式碼 }

多回傳值 function

以下的範例為小明的考試平均分數及及格率計算,其中 n1 是 5 科成績總和;n2 是及格科數。

https://ithelp.ithome.com.tw/upload/images/20181023/20110801wO6G0e3k3J.png

回傳 Optional

我們可以回傳一個 Optional 值,定義其中一個定義其中一個參數或是整個元祖,讓他在沒有值的時候返回 nil 。

https://ithelp.ithome.com.tw/upload/images/20181023/20110801Z5cvyBdJTw.png

function 實際參數標籤和形式參數名

指定實際參數標籤

func 函式名稱(外部參數名稱1 內部參數1: 型別1, 外部參數名稱2 內部參數名稱2: 型別2) { 內部執行程式 }

我可以幫參數上一個標籤,使他的可讀性更高;在下面的例子我為 name 上一個 student 的標籤、為 number 上一個 idNumber 的標籤,當我們使用 function 時就用我們所設定的標籤。

https://ithelp.ithome.com.tw/upload/images/20181023/20110801lZL8scuhuJ.png

省略參數名稱

我們可以將外部參數名稱改為底線 ( _ ) ,使 function 省略外部參數,在使用 function 時直接在逗號後面輸入值就好

https://ithelp.ithome.com.tw/upload/images/20181023/20110801ZPV8YByRL6.png

參數加入默認值

我們可以在建立 function 時,給他一個預設值,讓他在沒有輸入參數時能產生預設資訊,不過在你輸入參數給 function 後,就會顯示輸入值的結果

加入默認值

https://ithelp.ithome.com.tw/upload/images/20181023/20110801YGRg1bFEmx.png

加入默認值後使用參數

https://ithelp.ithome.com.tw/upload/images/20181023/20110801EsOoo3TtFx.png

有了默認值,就可以只加入一個參數

https://ithelp.ithome.com.tw/upload/images/20181023/20110801IuB98BIMgb.png

可變形式參數

可變形是參數可以接受零或是多個特定類型的值,當使用 function 時可以使用它來聲明參數可以被傳入值的數量是可變的。
注意!一個 function 中最多只有一個可變形式參數

https://ithelp.ithome.com.tw/upload/images/20181023/20110801I6Vi5bZafS.png

in-out 參數

普通的 function 的使用範圍都只在 function 內,如果想要修改函數的 function,而在使用後修改的內容還存在,就必須使用 in-out Parameters

・定義 function 時,時,在參數型別前加上 inout。此參數不能有預設值,也不能是可變形參數
・當呼叫 function 時,傳入參數作為 in-out parameter 時,需要再參數前面加上 &,這個參數只能是變數,不能是常數或是字串或數值

https://ithelp.ithome.com.tw/upload/images/20181023/20110801d8DYYRWngP.png

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


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

尚未有邦友留言

立即登入留言