Swift學習筆記(三十四)——函式型別

乞力馬紮羅的雪CYF發表於2015-09-16

(1)函式也可以賦值給一個變數,此時這個變數的型別是什麼呢?

import Foundation

func add(a:Int,b:Int) -> Int{

  return a+b
}

let anotherAdd:(Int,Int) -> Int = add
anotherAdd(3,4)

(2)如果引數的返回值為空,那麼這個函式型別應該怎麼寫呢?

import Foundation

func add(a:Int,b:Int) {

  var c = a + b
}

let anotherAdd:(Int,Int) -> () = add
anotherAdd(3,4)

或者:

import Foundation

func add(a:Int,b:Int) -> () {

  var c = a + b
}

let anotherAdd:(Int,Int) -> () = add
anotherAdd(3,4)

或者:

import Foundation

func add(a:Int,b:Int) -> Void {

  var c = a + b
}

let anotherAdd:(Int,Int) -> () = add
anotherAdd(3,4)

或者:

import Foundation

func add(a:Int,b:Int) -> Void {

  var c = a + b
}

let anotherAdd:(Int,Int) -> Void = add
anotherAdd(3,4)

(3)如果這個函式沒有引數,那函式型別是什麼呢?

import Foundation

func add() {

}

let anotherAdd:() -> Void = add
anotherAdd()

(4)排序

import Foundation

var arr = [Int]()
for _ in 1...20{

  arr.append(Int(arc4random()%100))
}

println(arr)

sorted(arr)
println(sorted(arr))

這個是從小到大排序,如果我想從大到小,應該怎麼辦呢?

import Foundation

var arr = [Int]()
for _ in 1...20{

  arr.append(Int(arc4random()%100))
}

println(arr)

sorted(arr)
println(sorted(arr))

func compareTwoInts(a:Int,b:Int) -> Bool{

  return a > b
}

println(sorted(arr,compareTwoInts))



github主頁:https://github.com/chenyufeng1991  。歡迎大家訪問!



相關文章