定义函数:
形式:func 函数名(参数名1:类型, 参数名2:类型, …) -> 返回结果的类型 {执行语句}
调用:var 变量名称 = 函数名(变量1, 变量2, …)
1.有参数有返回值
func add(x: Int, y: Int) -> Int {
return x + y
}
var z = add(x: 3, y: 4) //7
//可以给某个参数以默认值
func add2(x :Int, increment : Int = 2) -> Int {
return x + increment
}
add2(x: 3) //5
add2(x: 3, increment: 3) //6
2.无参数无返回值
无参数无返回值 :一般用于执行一系列操作,不需要结果.
func welcome() {
print("欢迎")
print("学习")
}
welcome()
3.多返回值(使用元组)
func maxMin() -> (Int, Int) {
let Range1 = Range(1..<8);
return (Range1.lowerBound, Range1.upperBound)
}
maxMin() //(.0 1, .1 8)
maxMin().0 //1
maxMin().1 //8
4.参数类型为函数类型
函数类型:包含参数和返回类型的简写形式,可以像普通变量那样使用,一般用于函数式编程.
例如:(Int,Int) -> Int
func calculate(x: Int, y: Int, method: (Int,Int)->Int ) -> Int {
return method(x, y)
}
func add(x: Int, y: Int) -> Int {
return x + y
}
func multiply(x: Int, y: Int) -> Int {
return x * y
}
calculate(x: 3, y: 4, method: add) //7
calculate(x: 5, y: 6, method: multiply) //30
5.参数为可变类型
默认情况下方法的参数是let值,也就是不可改变的。
不过我们可以在参数类型前使用inout关键字改变其不变性,并且在调用方法传递实参时也要加上地址符&。
func test( i:inout Int){
i += 1
print(i)
}
var x = 10
test(i: &x) //11
print(x) //"11\n"
参考自
SwiftV课堂视频源码
http://blog.csdn.net/mydo/article/details/51818387