###定义函数
func sayHello(personName: String) -> String {
let greeting = "Hello, " + presonName + "!"
return greeting
}
###函数参数和返回值
-
返回多个值的函数(用元组实现)
func count(string: String) -> (vowels: Int, consonants: Int) { ... }
-
外部参数名
func join(string s1: String, toString s2: String, withJoiner joiner: String) -> String{ ... } join(string: "hello", toString: "world", withJoiner: ",")
-
外部参数名的缩写
如果你的外部参数名就和形参名一样的话,在形参前加上 # 后即可。
func containsCharacter(#string: String, #characterToFind: Character) -> Bool{ ... }
-
默认参数值
func join(string s1: String, toString s2: String, withJoiner joiner: String = " ") -> String{ ... }
-
带默认参数值的外部参数名
即使你没给带默认参数值的参数一个外部参数名, Swift 会自动给它一个相同名字的外部参数名。
-
可变参数
func arithmeticMean(numbers: Double...) -> Double { ... } arithmeticMean(1, 2, 3, 4, 5) arithmeticMean(3, 8, 19)
可变参数是以一个数组的形式传递过去。 需要注意,一个函数至多只能有一个可变参数,并且一定是最后一个参数。
-
变量参数
默认传递给函数的参数都是常量参数,如果你想改变参数的值,你需要使用变量参数,即在参数前加上 var
func alignRight(var string: String, count: Int, pad: Character) -> String { ... }
-
输入输出参数
即使是变量参数,也只能在函数体内被改变,如果你想让函数修改参数的值,你需要在参数前加上 inout,并且在调用函数时,在实参前加上 &
func swapTwoInts(inout a: Int, inout b: Int) { ... } swapTwoInts(&someInt, &anotherInt)
###函数类型
func addTwoInts(a: Int, b: Int) -> Int {
...
}
var mathFunction:(Int, Int) -> Int = addTwoInts
-
函数类型作为参数类型
func printMathResult(mathFunction: (Int, Int) -> Int, a: Int) { ... }
-
函数类型作为返回类型
func chooseStepFunction(backwards: Bool) -> (Int) -> Int { ... }
END