Swift參數的外部名稱和內部名稱
External name and internal name of parameters in Swift
Swift的參數名稱有外部和內部之分(external name and internal name),可因應需要而使用,以提高可讀性。
參數的外部名稱和內部名稱是什麼?
顧名思義,內部參數名就是在function內部使用的名字,外部參數名就是在function外部使用的名字,所以當function被呼叫時,必須使用外部參數名。
要怎麼使用?
在一般情況下,用`名字: 型別`宣告參數,參數的外部名稱和內部名稱會是相同的。
如果內外部要使用不同的名字,外部參數名寫在內部參數名之前,用空格分隔。
省略參數名稱
在不需要用到參數名時,參數名是可被省略的,可用底線代替要被省略的參數名。
noName()和 noInternalName(num: )兩個function中都沒使用參數,故可省略內部參數名,但noExternalName()中有使用到參數,所以一定要有內部參數名。
為什麼要使用不同的內外部名字?
主要是為了提高可讀性,名字用得好就不用寫一堆註解啦~
例如在寫要用到相機或相片功能時,因為他們的程式碼99%都一樣,所以我們可以另外寫一個pickAnImage的fubnction來減少重複的代碼,而那1%的不同是UIImagePickerControllerSourceType,所以我們需要在外部帶入參數,以決定到底是要用相簿還是相機。
如果內外參數名都叫source 是沒有問題的,也不難懂。
但如果能改作就更好了pickAnImage(from:),因為當呼叫pickAnImage時寫的根本就是完整英文句子啊!pickAnImage(from: .camera) 讀出來就是pick an image from camera 超好懂的。
如果不區分內外參數名,都用from的話,在function內部就會顯得很奇怪。
總括而言,Swift這個功能是為了讓我們的程式碼更好讀,所以在寫Swift的時候不妨多加利用。