1).函数的定义:
函数的定义语法:
func 函数名(参数名:参数类型,参数名:参数类型...) -> 函数返回值类型 {
函数实现部分
}
func showInputName(name:String) -> String {
print(name)
return name
}
函数调用语法:
函数名(参数...)
showInputName("Mike")
2).函数可以有多个返回值:使用元组
func showInputName(name:String) -> (String , String) {
print(name)
return ("1" , "2")
}
3).使函数返回值带有参数名
func showInputName(name:String) -> (string1 : String , string2 : String) {
print(name)
return ("1" , "2")
}
let _ = showInputName("haha").string1
4).函数的内部参数和外部参数
//outName为外部参数 name为内部参数
func showInputName(outName name:String) {
print(name)
}
showInputName(outName: "haha")
5).函数的默认参数
func showInputName(name name:String = "haha") {
print(name)
}
showInputName() //带默认参数的函数 调用的时时候 如果想要使用默认参数 那么外部参数名也要一起省略
6).函数参数的常量、变量性和inout
函数变量默认是常量类型,如果需要在函数体内更改,可以在声明时候,设置为变量类型:
func showInputName(var name :String) {
let b = name
name = b
}
showInputName("hah")
但是!!!此修改只是表面上的修改,如果想要改变实参值,则需要使用inout关键字:
func showInputName(inout name :Int) {
name += 10
print(name)
}
var a = 10
showInputName(&a)
print(a) //两个打印结果 均为20
7).变参函数
如果想要传入任意多个参数,可以使用:“ 类型...” 的形式来声明函数:
func showInputName(name : Int...) {
for i in name {
print(i)
}
}
showInputName(1,2,3,4,5) //注意:变参一定要放在函数参数中的最后一个位置
8).函数类型
函数类型是由函数的参数和返回值共同决定的
func showInputName(name : Int) {
}
var _ : (Int) -> Void = showInputName
注:函数类型还可以作为函数返回值的类型