2015-05-09 55 views
0

在Swift中,您有很多可能的方法來聲明方法。您可以使用#和_符號來強制使用參數名稱,還可以更改參數的外部定義。作爲跟隨Swift必需的參數邏輯

func createCoffee(withSugar sugar:Bool, andMilk milk:Bool){ 
} 

// Where I want to call it like this: 
createCoffee(withSugar:true, andMilk: true) 

強制我申報方法:爲遵循

func createCoffee(# sugar:Bool, andMilk milk:Bool){ 
} 

// Resulting in the following way to call it 
createCoffee(sugar:true, andMilk: true) 

在這方面的一個奇怪的東西,聲明方法以下方法

不知何故,編譯器會創建一個錯誤信息將不會導致這種強制執行com

func createCoffee(firstParam sugar:Bool, andMilk milk:Bool){ 
} 

// Resulting in the following way to call it 
createCoffee(firstParam:true, andMilk: true) 

以哪種方式做編譯器是否決定允許使用不同的外部參數名稱?

+0

我沒有收到第一次聲明的編譯器警告 – gutenmorgenuhu

+3

問題是以「with」開頭的參數。請參閱:http://stackoverflow.com/q/25644127/1630618 – vacawama

回答

1

外部參數名稱用於更詳細的描述。將外部參數名稱設置爲「with_____」會使Swift和XCode將其視爲多餘。技術上的第一個參數總是「with___ intera參數名稱」。這完全是爲了語法閱讀的方便。

+0

明白了。發現它與vacawama的評論和這個評論正是答案的總結。謝謝! – Antoine