1,无返回值的函数
2,返回一个返回值
3,返回由多个值组成的复合返回值
4,可变形参:可以接受0个或者任意数量的输入参数
5,在Swift函数中,参数默认是常量。如果要改变参数的值,就需要在定义函数的时候加上关键字var。(外部的参数任然不会被修改)
6,如果想要同时改变函数内外的参数值,可以利用inout关键字,同时调用函数的时候给参数加上前缀“&”
7,可以使用函数类型的参数
8,也可以使用函数类型的返回值
|
1
2
3
|
func test(name:String){} |
|
1
2
3
|
func test(name:String) -> Bool{ return true} |
|
1
2
3
4
5
|
func test(name:String) -> (Int,Bool){ var position = 1 var visible = false return (position,visible)} |
|
1
2
3
4
5
6
7
|
func test(numbers:Int...) -> Int{ var count:Int = 0 for number in numbers{ count += number } return count} |
5,在Swift函数中,参数默认是常量。如果要改变参数的值,就需要在定义函数的时候加上关键字var。(外部的参数任然不会被修改)
|
1
2
3
4
5
6
7
8
9
10
11
|
var age = 22//无法编译func add(age:Int) { age +=1}//可以编译func add(var age:Int) { age +=1} |
6,如果想要同时改变函数内外的参数值,可以利用inout关键字,同时调用函数的时候给参数加上前缀“&”
|
1
2
3
4
5
6
7
|
var age = 22func add(inout age:int){ age += 1}changeAge(&age)println(age) //23 |
7,可以使用函数类型的参数
|
1
2
3
4
5
6
7
8
9
10
|
func additive(a:Int, b:Int) -> Int{ return a + b}//函数类型的参数func printAdditiveResult(addFun: (Int, Int) -> Int, a:Int, b:Int){ println("Result:(addFun(a,b))")}printAdditiveResult(additive, a: 5 ,b: 7) |
8,也可以使用函数类型的返回值
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//定义个自增函数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(3>2)println(aFun(3)) //2 |