Swift - 自定义函数规则说明

1,无返回值的函数

func test(name:String){
 
}

2,返回一个返回值

func test(name:String) -> Bool{
    return true
}

3,返回由多个值组成的复合返回值

func test(name:String) -> (Int,Bool){
    let position = 1
    let visible = false
    return (position,visible)
}

4,可变形参:可以接受0个或者任意数量的输入参数

func test(numbers:Int...) -> Int{
    var count:Int = 0
    for number in numbers{
        count += number
    }
    return count
}

5,如果想要同时改变函数内外的参数值,可以利用inout关键字,同时调用函数的时候给参数加上前缀“&”

func add(age:inout Int){
    age += 1
}
 
var age = 22
add(age: &age)
print(age) //23

6,可以使用函数类型的参数

func additive(a:Int, b:Int) -> Int{
    return a + b
}
 
//函数类型的参数
func printAdditiveResult(addFun: (Int, Int) -> Int, a:Int, b:Int){
    print("Result:\(addFun(a,b))")
}
 
printAdditiveResult(addFun: additive, a: 5 ,b: 7)

7,也可以使用函数类型的返回值

//定义个自增函数
func increase(input:Int) -> Int{
    return input + 1
}
 
//定义个自减函数
func reduce(input:Int) -> Int{
    return input - 1
}
 
//定义一个返回函数类型的函数
func chooseFunction(backwards:Bool) -> (Int) -> Int{
    return backwards ? reduce : increase
}
 
//测试
let aFun = chooseFunction(backwards: 3>2)
print(aFun(3))  //2

(本文代码已升级至Swift3)

原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_516.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容