Swift – 自定义函数规则说明

注:代码已升级至Swift4

无返回值的函数

func test(name:String) {

}

返回一个返回值

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

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

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

可变形参

可以接受0个或者任意数量的输入参数

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

改变实参值

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

func add(age:inout Int) {
    age += 1
}

var age = 22
add(age: &age)
print(age)  //23

可以使用函数类型的参数

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)

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

//定义个自增函数
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
上一篇 Swift - 控制流及控制结构说明(if,switch,for,while)
下一篇 Swift - 类初始化和反初始化方法(init与deinit)
目录
文章列表
1 TestNG测试结果报告
TestNG测试结果报告
2
Android Support Library Packages
Android Support Library Packages
3
SSH免密码登陆时Authentication refused - bad ownership or modes错误解决方法
SSH免密码登陆时Authentication refused - bad ownership or modes错误解决方法
4
uni-app扩展配置package.json
uni-app扩展配置package.json
5
使用在线代码沙盒平台codesandbox.io开启Web云开发
使用在线代码沙盒平台codesandbox.io开启Web云开发
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。