是什么是函数重载?
名字相同的函数出现在一起,就构成了函数重载,只要形参列表或者返回值类型不同就行。
判断条件
- 形参列表、
- 返回值类型组成、
- 外部形参名
三者其中一种不一样均可作为函数重载
举例说明
//该函数类型为()->Void
func test()
{
}
//该函数类型为(String)->Void或者(String)->()
func test(msg:String)
{
}
//该函数类型为(String)->String
func test(msg:String)->String
{
}
//注意该函数类型为(String)->String,但依旧构成函数重载,因为它有 外部形参名
func test(#msg:String)->String
{
}
注意调用的时候,根据申请的变量类型不同确定调用的函数不同
//调用第一种函数
var rest:Void=test();
//调用第二种函数
var rest:Void=test("Hello");
//调用第三种函数
var rest:String=test("Hello")
//调用第四种函数
var rest:String=test(msg:"Hello")
最后提醒下函数中包含个数可变的形参不包含在此行列中,因为无法判断你选择的哪种函数,这是在坑Xcode,哈哈。