Swift - 自定义函数规则说明
(本文代码已升级至Swift3)
1,无返回值的函数
2,返回一个返回值
3,返回由多个值组成的复合返回值
4,可变形参:可以接受0个或者任意数量的输入参数
5,如果想要同时改变函数内外的参数值,可以利用inout关键字,同时调用函数的时候给参数加上前缀“&”
6,可以使用函数类型的参数
7,也可以使用函数类型的返回值
1,无返回值的函数
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) }
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
航哥的课程清晰实用,为已用实际行动支持!
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)
为什么我建函数的时候 只提供给我了 func test(name:String) -> Bool{
return true
} 这个提示 而没有func test(){
}这种