swift 学习之 函数

//

//  main.swift

//  Function

//

//  Created by Danny Deng on 10/18/16.

//  Copyright © 2016 QQ 352735640. All rights reserved.

//


import Foundation


/*********************/

// 1不带参数无返回值的函数

/*********************/


func withoutParams() {

    print("Now call withoutParams")

}


withoutParams()


//控制台输出 Now call withoutParams




/*********************/

// 2带参数单返回值的函数

/*********************/


func withParams(param1 :Int,param2 : Int)->Int {

    return param1 + param2

}


let num1 =20

let num2 =45

var result =withParams(param1: num1, param2: num2)

print("withParams the result is\(result)")

//控制台输出 withParams the result is 65




/*********************/

// 3多个返回值的函数

/*********************/

func multiReturn(param1:Int, param2: Int) -> (Int,Int,Int) {

    return (param1 + param2,param1 - param2,param1 * param2)

}


let (a,b,c) =multiReturn(param1: 23, param2: 56)

print("a=\(a) b=\(b) c=\(c)")

//控制台输出 a=79 b=-33 c=1288



/*********************/

// 4嵌套函数的函数

/*********************/

func innerFunc(para1 :Int) -> Int {

    var value = para1

    

    func innerAdd() {

        value = value * value

    }

    

    innerAdd()

    return value

}


let innerFuncResult =innerFunc(para1: 34)

print("innerFunc(para1: 34) =\(innerFuncResult)")

//控制台输出 innerFunc(para1: 34) = 1156


/*********************/

// 5 函数指针

/*********************/

//返回值是((Int)->Int),是个函数地址第一个int是参数类型,第二个int是返回值

func getFuncPointer()->((Int)->Int) {

    func sum(num:Int)->Int{

        return num+num;

    }

    return sum;//返回一个函数地址

}


var funcPointer =getFuncPointer();

//funPointer是个函数指针

var pointReuslt =funcPointer(23);//函数的形式调用

print("pointReuslt =\(pointReuslt)")

//控制台输出 pointReuslt = 46


func get()->((Int)->String){

    func post(count:Int)->String{

        if count >50 {

            return"success";

        }else{

            return"failed"

        }

    }

    returnpost;

}


//函数指针/地址作为参数,函数作为参数传给函数,函数的传递

let funcPoint =get();//v8拿到的是get()函数的地址

let PointValue =funcPoint(58);//v9拿到的是get函数的返回值

print("funcPoint =\(PointValue)")

//控制台输出 funcPoint = success






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值