在swift中,可以定義int,double,array,string….等資料型別,作為函式,每個函式都有自己的函式型別,函式型別由函式的引數型別和返回值型別決定。
例如:
func addtwoints(a: int, b: int) -> int
該函式函式型別為:(int, int) -> int
->前面的內容由引數型別決定,->後面的內容由返回值型別決定
func sayhello()
同樣,該函式的函式型別為:() -> ()
定義乙個函式型別變數
var add: (int, int) -> int
初始化變數add
add = addtwoints
使用add
var n = add(100, 200)
這樣就相當於呼叫addtwoints函式
此時n = 300
既然函式型別可以作為資料型別,那麼它也可以作為函式的引數
func add_5(inout n: int)
func add_10(inout n: int)
func add_15(inout n: int)
上面的三個函式的函式型別為:(inout int) -> ()
func arr_add(inout array: [int], function: (inout int) -> ())
}
arr_add函式的第二個引數為(inout int) -> () 函式型別
該函式的作用是遍歷array,之後呼叫function傳入的函式
var
array = [1, 2, 3, 4, 5]
arr_add(&array, function: add_15)
array中的數每個都被加了15
如果founction後傳入的為add_5,arr_add執行的為遍歷array的每個元素,然後每個元素執行add_5函式
函式型別也可以作為函式返回值,
func stepforward(input: int) -> int
func stepbackward(input: int) -> int
func shoosestep(backward: bool) ->
(int) -> int
varfunction: (int) -> int = shoosestep(true)
function(100)
shoosestep函式的返回值是(int) -> int 型別
如上,function(100)的值為99
函式型別可以當做是一種資料型別,基本資料型別可以充當的角色它也可以充當。
5 8 Swift函式型別
8 函式型別 函式型別變數 常量 函式型別引數 函式型別返回值 這個是變數 自動識別為整型 var calfunc add a t int b t int var calfunc add a 5,b 3 定義乙個函式型別變數 var calfunc int,int int add 這個是函式變數 v...
Swift學習筆記(三十四) 函式型別
1 函式也可以賦值給乙個變數,此時這個變數的型別是什麼呢?import foundation func add a int,b int int let anotheradd int,int int add anotheradd 3,4 2 如果引數的返回值為空,那麼這個函式型別應該怎麼寫呢?impo...
Swift 型別轉換
import uikit 1.定義基類 mediaitem 2.定義子類 movie 3.定義子類 song class mediaitem class movie mediaitem class song mediaitem let library movie name movie1 direct...