SWfit學習2 函式和閉包

2021-07-05 03:32:12 字數 1589 閱讀 6785

函式

swift 使用 func 關鍵字宣告函式:

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

greet("hello", day: "world")

通過元組(tuple)返回多個值:

func getprices() -> (double,double,double)

getprices()

支援帶有變長引數的函式:

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

return

sum }

letsum= sumof()

let sum1 = sumof(12,23,45,14,45,87)

println("sum =\(sum),sum1 = \(sum1)")

執行結果:sum =0,sum1 = 226

函式也可以巢狀函式:

func returnfifteen() -> int

add()

return y

}returnfifteen()

作為頭等物件,函式既可以作為返回值,也可以作為引數傳遞:

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

return addone

}var incernebt = makeincrementer()

let summery = incernebt(7)

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

}return

false

}func lessonthanten(number:int) -> bool

var numbers = [20,17,9,19]let haomatch = hasanymatches(numbers, condition: lessonthanten)

閉包

閉包是功能性自包含模組,可以在**中被傳遞和使用。 swift 中的閉包與 c 和 objective-c中的 blocks 以及其他一些程式語言中的 lambdas 比較相似。本質來說,函式是特殊的閉包,swift 中可以利用{}宣告匿名閉包:

閉包表示式語法有如下一般形式:

函式和返回值型別都寫在大括號內,而不是大括號外。

閉包的函式體部分由關鍵字 in 引入。 該關鍵字表示閉包的引數和返回值型別定義已經完成,閉包函式體即將開始。

numbers.map()
當閉包的型別已知時,可以使用下面的簡化寫法:

numbers.map()
此外還可以通過引數的位置來使用引數,當函式最後乙個引數是閉包時,可以使用下面的語法:

sort([1, 5, 3, 12, 2])

Swift學習筆記 函式和閉包(2)

1.函式型別 定義乙個變數 int,int int var myfun int int int 定義乙個變數 string void var test string void 計算乙個乘方的函式 func pow base int,exponent int int return result 將po...

Swift學習3 函式和閉包

1,函式的返回值可以是元組 2,函式的引數可以有預設值 3,輸入輸出引數 用 可以進行位址傳遞 4,函式型別 可以模擬函式指標,可以作為引數,也可以作為返回值 func stepforward input int int func stepbackward input int int func ch...

Scala學習筆記 函式和閉包

1.本地函式 可以在乙個方法內再次定義乙個方法,這個方法就是外部方法的內部私有方法,省略了private關鍵字 2.頭等函式 var increase x int x 1 system.out.println increase 10 集合類的foreach方法 var list1 list 1,2 ...