Swift函式型別

2021-07-09 05:24:30 字數 1463 閱讀 7770

在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...