swift -- 函数
1.函数的定义与调用
//函数的定义
func add(){
print("add")
}
//函数的调用
add()
2.函数参数与返回值
//func 函数名称(函数参数) -> 返回值
func sub(a : Int , b : Int) -> Int{
return a + b
}
3.无参函数
func add1(){
print("add1")
}
//调用
add()
4.多参函数
func add2(a : Int , b : Int){
print(a,b)
}
add2(4 , b : 6) //注意,多参的调用
5.无返回值函数
//两种写法
func add3(a : Int){
print(a)
}
add3(7)
//void
func add4(a : Int) -> Void {
print(a)
}
add4(7)
6.有返回值函数
func add5(a : Int) -> Int {
return a
}
let ss = add5(0) //接收返回值
print(ss)
7.元组 作为返回值
func add6(a : Int , b : Int) -> (Int , Int){ // 返回元祖
return (a*10 , b*5)
}
let yuan = add6(4, b: 5)
print(yuan)
8.可选元组 作为返回值
func add7(a : Int) -> (Int , Int)? { // 返回可选元祖
if a < 10{
return nil //只有当返回值为 可选类型?的时候,才能返回nil ,别的不行
}
return (a,10)
}
//调用
let yu = add7(11)
print(yu)
9.指定函数外部参数
//a 是内部用,内部参数
//one 是外部用,外部参数
func add8(one a : Int , two b : Int) -> Int {
return a + b
}
print(add8(one: 5, two: 6))
10.忽略函数外部参数.
func add9(a : Int , _ b : Int) -> Int{
return a+b
}
print(add9(5, 6)) //注意:此时第二个变量没有
11.函数默认参数值
func sub(a : Int , b : Int = 10) -> Int{
return a + b
}
let c = sub(10, b: 30)
let d = sub(1) //只传入一个参数
12.函数可变参数(…)
//...代表可传入多个参数都可以(类似将a看做数组)
func sub1(a : Int ...) -> Int{
var sum = 0
for i in a{
sum += i
}
return sum
}
let s = sub1(1)
let s1 = sub1(1,2,3)
print(s1)
13.函数输入输出参数 inout
var a10 = 10
var a11 = 11
func sub2(inout a : Int ,inout b : Int) -> Void{
let c = a
a = b
b = c
print(a , b)
}
sub2(&a10, b: &a11) // 传入的是地址
14.函数类型
// (Int , Int) -> Int
func run(a : Int , b : Int) -> Int {
return a + b
}
func eat(a : Int , b : Int) -> Int{
return a - b
}
15.函数类型最为类型使用
let f : Int = 10
let fun : (Int , Int) -> Int = run //直接写函数名,赋值
print(fun(1,2))
16.函数类型作为 参数类型
func sing(a : (Int,Int) -> Int , b : Int ,c : Int ,d : Int) ->Int {
return a(b,3) + c + d
}
let sss = sing(run, b: 1, c: 2, d: 3) //a 只传入函数名即可
print(sss)
17.函数类型做为返回值
func tea(a : Int , b : Int) -> (Int, Int) -> Int {
if a > b {
return eat // 只返回函数的名称
}else{
return run
}
}
let rr = tea(1, b: 2) //此时 rr 接收的是一个函数
let tt = rr(2,3) //tt 运行的是eat 或run 函数