当前位置: > > > Swift - 自定义函数规则说明

Swift - 自定义函数规则说明

(本文代码已升级至Swift3)

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
评论3
  • 3楼
    2017-09-11 17:44
    zc

    航哥的课程清晰实用,为已用实际行动支持!

    站长回复

    真是非常感谢你的支持与打赏,我会坚持下去,继续创作更多更好的文章分享给大家。

  • 2楼
    2016-12-29 11:59
    沫沫

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

    var age = 22

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

    func printAdditiveResult(addFun: (Int, Int) -> Int, a:Int, b:Int){
    print("Result:\(addFun(a,b))")
    }
    //
    printAdditiveResult(addFun: additive, a: 5 ,b: 7)

    站长回复

    谢谢你的提醒,文章代码已更新。

  • 1楼
    2016-05-11 14:21
    梦痕

    为什么我建函数的时候 只提供给我了 func test(name:String) -> Bool{
    return true
    } 这个提示 而没有func test(){

    }这种

    站长回复

    这个我不太明白你的意思。