Swift參數的外部名稱和內部名稱

External name and internal name of parameters in Swift

Lumanman
Swift Things
4 min readJul 23, 2018

--

Swift的參數名稱有外部和內部之分(external name and internal name),可因應需要而使用,以提高可讀性。

參數的外部名稱和內部名稱是什麼?

顧名思義,內部參數名就是在function內部使用的名字,外部參數名就是在function外部使用的名字,所以當function被呼叫時,必須使用外部參數名。

要怎麼使用?

在一般情況下,用`名字: 型別`宣告參數,參數的外部名稱和內部名稱會是相同的。

如果內外部要使用不同的名字,外部參數名寫在內部參數名之前,用空格分隔。

省略參數名稱

在不需要用到參數名時,參數名是可被省略的,可用底線代替要被省略的參數名。

noName()和 noInternalName(num: )兩個function中都沒使用參數,故可省略內部參數名,但noExternalName()中有使用到參數,所以一定要有內部參數名。

為什麼要使用不同的內外部名字?

主要是為了提高可讀性,名字用得好就不用寫一堆註解啦~

例如在寫要用到相機或相片功能時,因為他們的程式碼99%都一樣,所以我們可以另外寫一個pickAnImage的fubnction來減少重複的代碼,而那1%的不同是UIImagePickerControllerSourceType,所以我們需要在外部帶入參數,以決定到底是要用相簿還是相機。

外內部使用相同的參數名 “source”

如果內外參數名都叫source 是沒有問題的,也不難懂。

外部參數名使用 “from” ; 內部參數名使用 ”source”

但如果能改作就更好了pickAnImage(from:),因為當呼叫pickAnImage時寫的根本就是完整英文句子啊!pickAnImage(from: .camera) 讀出來就是pick an image from camera 超好懂的。

外內部使用相同的參數名 “from”

如果不區分內外參數名,都用from的話,在function內部就會顯得很奇怪。

總括而言,Swift這個功能是為了讓我們的程式碼更好讀,所以在寫Swift的時候不妨多加利用。

--

--

Lumanman
Swift Things

Swift learner & sharer | Nothing is wasted, nothing is in vain.