swift swift學習筆記 函式和閉包

2022-05-15 10:48:42 字數 1833 閱讀 1432

func greet(person: string, day: string) ->string 

greet(person:

"bob

", day: "

tuesday

")

func greet(_ person: string, on day: string) ->string 

greet(

"john

", on: "

wednesday

")

使用元組來建立復合值——比如,為了從函式中返回多個值。元組中的元素可以通過名字或者數字呼叫

func calculatestatistics(scores: [int]) ->(min: int, max: int, sum: int)  

else

if score sum +=score

}return

(min, max, sum)

}let statistics = calculatestatistics(scores: [5, 3, 100, 3, 9

])print(statistics.sum)

print(statistics.

2)

函式同樣可以接受多個引數,然後把它們存放進陣列當中

func sumof(numbers: int...) ->int 

return

sum}

sumof()

sumof(numbers:

42, 597, 12)

函式可以內嵌。內嵌的函式可以訪問外部函式裡的變數。你可以通過使用內嵌函式來組織**,以避免某個函式太長或者太過複雜

func returnfifteen() ->int 

add()

returny}

returnfifteen()

函式是一等型別,這意味著函式可以把函式作為值來返回

func makeincrementer() -> (int ->int) 

return

addone

}var increment =makeincrementer()

increment(

7)

函式也可以把另外乙個函式作為其自身的引數

func hasanymatches(list: [int], condition: (int) -> bool) ->bool 

}return

false

}func lessthanten(number: int) ->bool

var numbers = [20, 19, 7, 12

]hasanymatches(list: numbers, condition: lessthanten)

numbers.map()

你有更多的選擇來把閉包寫的更加簡潔。當乙個閉包的型別已經可知,比如說某個委託的**,你可以去掉它的引數型別,它的返回型別,或者都去掉。

單語句閉包隱式地返回語句執行的結果

3 *number })

你可以呼叫引數通過數字而非名字——這個特性在非常簡短的閉包當中尤其有用。當乙個閉包作為函式最後乙個引數出入時,可以直接跟在圓括號後邊。如果閉包是函式的唯一引數,你可以去掉圓括號直接寫閉包

let sortednumbers = numbers.sort 

print(sortednumbers)

**:swift裡面的所有筆記,均參考字網上的部落格,純屬自己學習記錄專用,謝各位大神!

libevent學習筆記 setvbuf 函式

函式名 setvbuf 用 法 int setvbuf file stream,char buf,int type,unsigned size type 期望緩衝區的型別 iofbf 滿緩衝 當緩衝區為空時,從流讀入資料。或者當緩衝區滿時,向流寫入數 據。iolbf 行緩衝 每次從流中讀入一行資料或...

Python 學習筆記 enumerate函式

enumerate 函式用於將乙個可遍歷的資料物件 如列表 元組或字串 組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中。seasons spring summer fall winter list enumerate seasons 0,spring 1,summer 2,f...

matlab學習筆記009之solve函式

matlab中solve函式主要是用來求解線性方程組的解析解或者精確解。對於得出的結果是符號變數,可以通過vpa 得出任意位數的數值解!solve函式的語法定義主要有以下四種 solve eq solve eq,var solve eq1,eq2,eqn g solve eq1,eq2,eqn,va...