简单内嵌函数:
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