Swift-函数

2018-06-06  本文已影响10人  tp夕阳武士

1.函数的定义和调用

定义一个函数时,可以定义一个或多个有名字和类型的值,作为函数的输入,称为参数,也可以定义某种类型的值作为函数执行结束时的输出,称为返回类型.
每一个函数都有函数名,在为一个函数起名字时,最好结合此函数的实现时间让其达到顾名思义的效果.

//代码案例
func greet(person: String) -> String {
    let greeting = "Hello, " + person + "!"
    return greeting
}
/*上面这个函数的函数名字是: greet(person:) , func 是这个函数的前缀 ,  
-> 后面接着的是表示函数需要返回一个 String类型的值
如果要使用此函数,必须为其传入一个String类型的实参
在函数运行的最后需要返回一个String类型的返回值*/

2.多重返回值

Swift中,我们可以使用元组来实现在一个函数中返回多个值

func minMax(array: [Int]) -> (min: Int, max: Int) {
    var currentMin = array[0]
    var currentMax = array[0]
    for value in array[1..<array.count] {
        if value < currentMin {
            currentMin = value
        } else if value > currentMax {
            currentMax = value
        }
    }
    return (currentMin, currentMax)
}

4 inout 关键字

inout关键字就好比OC中的传入一个参数的指正一样

//定义一个函数,其传入参数用inout 标记
func swapTwoInts ( _ a : inout Int , _ b: inout Int ) -> (){
      let c = a
      a = b
      b = c
}

//假设在程序某处调用了此函数 
   let a  = 1 
   let b  = 2 
   swapTwoInts(a,b)
   printf(a,b) //输出 2 , 1

5 嵌套函数

//一般情况下我们都会把函数定义在全局域内(全局域就是每一个文件的最外层的 { } 之间的位置 )
//但是其实Swift其实允许我们在函数的内部再定义一个函数,并且在这个局部函数定义的新函数可以作为原函数的返回值
//我们称这种写法叫做:嵌套函数

func dmeo1 ( condition:Bool ) -> (Int) - (Int) {
    func dmeo2 (input: Int) -> Int { return input + 1 }
    func dmeo3 (input: Int) -> Int { return input - 1 }
    return condition ? stepBackward : stepForward
}
/*此函数的意思是  demo1 函数通过其传入的条件参数:condition 
进行判断来决定返回另外一个函数,
但是此函数必须是一个指定的格式 : (Int) -> (Int) */

上一篇 下一篇

猜你喜欢

热点阅读