简单内嵌函数:
func returnFifteen() -> Int {
var y = 10;
func add() {
y += 5
}
add()
return y;
}
println(returnFifteen())
//返回值为函数(单参函数)
func makeIncrementer() -> (Int -> Int) {
func addOne(number : Int) -> Int {
return 2 * number
}
return addOne
}
//返回值为函数(多参函数)
var increment = makeIncrementer()
println(increment(7))
func choose(backward: Bool) -> (Int, Int) -> Int {
func stepForward(input: Int, I: Int) -> Int { return input + I}
func stepBackward(input: Int, I: Int) ->Int { return input - I}
return backward ? stepBackward : stepForward
}
var currentValue = -4
let moveN = choose(currentValue > 0)
while currentValue < 100 {
println("\(currentValue)...")
currentValue = moveN(currentValue, 5)
}
println("zero!")
//
声明函数两种方法:(个人认为是相同的)
func addTwoInts(a: Int, b: Int) -> Int {
return a + b
}
var mathFunction1 : (Int, Int) -> Int = addTwoInts
var mathFunction2 = addTwoInts