前言
函式是每個程式語言都會有的一個語法,非常的實用,只要是編寫功能,一定與函式脫離不了關係,而函式的內容,主要會有幾個部分,也是這篇文章主要會提到的內容,本文章將分成幾個描繪function基礎功能的部分:
- function的結構
- 內部參數(internal parameter)、外部參數(external parameter)
- 省略參數(Omitting parameter)、默認參數(default parameter)、可變參數函式(Variadic functions)
正文
函式的結構,主要會長這樣:
1.基本型

2.有參數輸入的型態

如果有輸入參數的話,要記得在括弧內填入(參數:型別)
然後作為外部函式執行的時候,要記得函式(參數:型別)。
3.可回傳值的型態

如果是有回傳值記號:->的話,則一定要記得Return一定要在下面加上去。
原則上,上面三種樣態是函式的最基礎樣貌。下面,則會進一步地提到函式在細節上的一些規則。
參數:內部參數(internal parameter)、外部參數(external parameter)
在上述提到函式可能產生的樣態,接著要說函式在使用上,具有的一些小規則:
在使用函式的時候,可以先把函式先想成兩個部分:內部、外部

內部:基本上就是func…{ }中,{}裡面的地方,就是內部,而所謂的內部參數,就是game:String的部分,因為他直接的對應到的是String的輸入。
外部:外部的部分,就是函式的呼叫,也就是game_commenrt(name:String)的部分,在上述的定義函式中,name這個字眼的意義就是外部參數,專門用在當函式作為是一個外面呼叫的字眼的時候,為了區分而使用的。
所以在上面這段程式裡面,name就是外部參數,game就是內部參數。
省略外部參數(Omitting parameter)
當然,假若你今天不想要額外的給定外部參數的名稱,也可以用另一種方式:底線“ _ ”來做作為省略外部參數
如下所述:

那也必須注意,既然都省略了外部參數的名稱了,那函數呼叫的時候,就不應該有外部參數的名字,直接把值輸進去就可以運行整個函式。
默認參數(default parameter)
默認參數這件事情是建立在Bool值上的,如果在內部參數的部分,便認定goodgame的預設是true,那可以看到以下會發生的選擇路徑:

根據第一個呼叫函式的樣態,game_comment()只需要放置外部參數的內容即可,Swift基本上會默認參數就是true,所以就直接走向回傳第一個值。
而根據第二個呼叫函式的樣態,game_comment()則是給定了外部參數額外的goodgame:false,所以既然特意給定了,就代表會影響Swift對於呼叫函式的認定,因而回傳第二個值。
可變參數函式(variadic functions)
可變參數函數的內容其實是像下面這樣的,如果Int給上了“…”就代表了可以接受多個值,而numbers就是接收了2,3,12這三個值

因此走訪了這幾個數字之後,就得出了下面的結果:

綜合上述的一些基本函式邏輯,我認為其實這些應該算是很夠用了,之後如果有遇到更複雜的邏輯,會再進行更新,下篇會再延伸出函式這個篇章的一些探討與研究。