一、什么是外部參數(shù)名?
淺顯地說,外部參數(shù)名就是在調(diào)用一個(gè)方法時(shí)要在方法的參數(shù)前面加上一個(gè)特定的名字,目的是便于閱讀代碼,提高維護(hù)效率。
二、在最新的Xcode中,外部參數(shù)名的性質(zhì)與用法如下
性質(zhì):
函數(shù)可同時(shí)有局部名稱(內(nèi)部使用)和外部名稱(調(diào)用函數(shù)時(shí)使用),方法的參數(shù)也類似,不過方法和函數(shù)的局部名稱和外部名稱的默認(rèn)行為是不一樣的
Swift中默認(rèn)給第一個(gè)參數(shù)名稱一個(gè)局部參數(shù)名稱,第二和后續(xù)的參數(shù)局部參數(shù)名稱和外部參數(shù)名稱默認(rèn)相同
用法示例:
在其他語言中如果我們這樣定義一個(gè)方法:

我們一般這樣調(diào)用:

而Swift中這種寫法是有錯(cuò)誤的,
如上的定義方法,系統(tǒng)報(bào)錯(cuò)如下:

應(yīng)該這樣調(diào)用:

所謂argument labels 即 外部參數(shù)名。
我在第一次接觸到這個(gè)東西時(shí)不知所措,因?yàn)槲也]有顯示的制定外部參數(shù)名,但是系統(tǒng)給添加了默認(rèn)的與形參相同的外部參數(shù)名。但是奇怪的是第一個(gè)參數(shù)x卻沒有默認(rèn)制定外部參數(shù)名。
原因是:
Swift中默認(rèn)給第一個(gè)參數(shù)名稱一個(gè)局部參數(shù)名稱,第二和后續(xù)的參數(shù)局部參數(shù)名稱和外部參數(shù)名稱默認(rèn)相同。
修改方法的外部參數(shù)名稱
有時(shí)為方法的第一個(gè)參數(shù)提供外部參數(shù)名也是有用的,可以顯示在參數(shù)前添加#號
如果不想為方法的第二個(gè)及后續(xù)參數(shù)提供外部參數(shù)名稱,在前面使用下劃線 (_) 作為該參數(shù)的顯式外部名稱。
1、比如,你想要這樣調(diào)用方法:

應(yīng)該這樣定義方法:

2、又比如,你想要這樣調(diào)用方法:

應(yīng)該這樣定義方法:

3、或者顯示制定其他的外部參數(shù)名
這樣定義:

這樣調(diào)用:
