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

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").

主站蜘蛛池模板: 荔浦县| 桂阳县| 陆河县| 高台县| 忻城县| 汶上县| 新蔡县| 锡林浩特市| 桐柏县| 准格尔旗| 邢台市| 镇江市| 深泽县| 金沙县| 额济纳旗| 唐海县| 昭通市| 阜平县| 泰兴市| 阿城市| 淮安市| 册亨县| 商城县| 张家口市| 哈尔滨市| 宁陵县| 邓州市| 津南区| 仙游县| 金华市| 乐都县| 宣威市| 卓资县| 淮滨县| 耒阳市| 密山市| 葫芦岛市| 满洲里市| 新绛县| 达州市| 梁平县|