官术网_书友最值得收藏!

Parameter overloading

Unlike Objective-C, Swift supports parameter overloading, which allows for functions to have the same name and only be differentiated by the parameters that they take.

Let's learn more about parameter overloading by entering the following code into a playground:

func combine(_ givenName: String, _ familyName: String) -> String { 
return "\(givenName) \(familyName)"
}

func combine(_ integer1: Int, _ integer2: Int) -> Int {
return integer1+integer2
}

let combinedString = combine("Finnley", "Moon")
let combinedInt = combine(5, 10)
print(combinedString) // Finnley Moon
print(combinedInt) // 15

Both the preceding functions have the name combine, but one takes two Strings as parameters and the other takes two Ints. Therefore, when we come to call the function, the compiler knows which implementation we intended by the values we pass as parameters.

We've introduced something new in the preceding function declarations--anonymous parameter labels, _ givenName: String.

When we declare the parameters, we use an underscore _ for the parameter label; this indicates that we don't want a parameter name shown when calling the function. This should only be used if the purpose of the parameters is clear without the labels, as is the case in the preceding example--combine("Finnley", "Moon").

主站蜘蛛池模板: 巴彦淖尔市| 鄯善县| 穆棱市| 阳城县| 本溪市| 潮州市| 达孜县| 古浪县| 高雄县| 南涧| 临城县| 洛南县| 玉龙| 苗栗县| 陈巴尔虎旗| 陈巴尔虎旗| 手机| 东乡族自治县| 呼和浩特市| 监利县| 苍溪县| 醴陵市| 大田县| 克东县| 深州市| 沾益县| 南华县| 襄城县| 内丘县| 紫金县| 昆山市| 商洛市| 常宁市| 延川县| 铜鼓县| 遵义市| 宝鸡市| 郧西县| 德庆县| 贡山| 兰坪|