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 函数

 

posted @ 2016-06-14 19:06  Da雪山  阅读(122)  评论(0编辑  收藏  举报