国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Swift中文教程(四)--函數(shù)與閉包

2019-11-14 20:26:32
字體:
來源:轉載
供稿:網(wǎng)友

Function 函數(shù)

  Swift使用func關鍵字來聲明函數(shù),函數(shù)通過函數(shù)名加小括號內(nèi)的參數(shù)列表來調(diào)用。使用->來區(qū)分參數(shù)名和返回值的類型:

1 func greet(name: String, day: String) -> String {2     return "Hello /(name), today is /(day)."3 }4 greet("Bob", "Tuesday")

練習:

remove day參數(shù),增加一個參數(shù),比如:今天的午餐特色菜~

1 func greet(name:String, day:String) -> String{2 3   return "Hello /(name), today is /(day)."  //第二章說過用/()來內(nèi)嵌變量4 5 }6 7 greet('Joe', '菩提玉齋')

 

 

  函數(shù)使用元組(tuple)來返回多個值:

1 func getGasprices() -> (Double, Double, Double) {2     return (3.59, 3.69, 3.79)3 }4 getGasPRices()

 

  函數(shù)還可以接收可變的參數(shù)個數(shù),將這些參數(shù)收集在數(shù)組里面:

1 func sumOf(numbers: Int...) -> Int {2     var sum = 03     for number in numbers {4         sum += number5     }6     return sum7 }8 sumOf()9 sumOf(42, 597, 12)

練習:

編寫一個函數(shù)并求出其參數(shù)的平均值。

 

  函數(shù)是可以嵌套的,嵌套過的函數(shù)可以訪問到外部函數(shù)聲明過的變量,使用函數(shù)嵌套可以便于你組織過長或復雜的函數(shù):

1 func returnFifteen() -> Int {2     var y = 103     func add() {4         y += 55     }6     add()7     return y8 }9 returnFifteen()

 

  在Swift中,函數(shù)是第一等類型,這意味著一個函數(shù)可以將另外一個函數(shù)作為它的返回值:

1 func makeIncrementer() -> (Int -> Int) {2     func addOne(number: Int) -> Int {3         return 1 + number4     }5     return addOne6 }7 var increment = makeIncrementer()8 increment(7)

 

  函數(shù)還能接收其它函數(shù)作為它的參數(shù):

 1 func hasAnyMatches(list: Int[], condition: Int -> Bool) -> Bool { 2     for item in list { 3         if condition(item) { 4             return true 5         } 6     } 7     return false 8 } 9 func lessThanTen(number: Int) -> Bool {10     return number < 1011 }12 var numbers = [20, 19, 7, 12]13 hasAnyMatches(numbers, lessThanTen)

  

  Closure 閉包

  

  函數(shù)其實是一種閉包的特殊情況,你可以寫一個用花括號{}包裹的匿名閉包,用in來區(qū)分參數(shù)與主體的返回類型:

1 numbers.map({2     (number: Int) -> Int in3     let result = 3 * number4     return result5     })

練習:

重寫這個閉包來對所有奇數(shù)返回0

 

  閉包有多種簡潔的寫法。當返回值類型已知時,比如委托回調(diào),你就可以省略它的參數(shù)類型,它的返回值類選,或者二者都略去,單行語句的閉包可以直接隱式地返回此一語句的值:

1 numbers.map({ number in 3 * number })

 

  你可以通過數(shù)字而不是名字來引用一個參數(shù),這對于很短的閉包非常有用。一個閉包通過圓括號傳遞其最后一個參數(shù)到函數(shù)能立即生效:

1 sort([1, 5, 3, 12, 2]) { $0 > $1 }

 

 

謝謝,Swifter-QQ群:362232993,同好者進~ 

github地址:https://github.com/Joejo/Swift-lesson-for-chinese

 

 

 

 

 

 

 

 


上一篇:Swift_1

下一篇:UITableView分隔線

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 盐池县| 会昌县| 友谊县| 德化县| 当涂县| 绩溪县| 天气| 贺兰县| 尉氏县| 江孜县| 潼关县| 丁青县| 会宁县| 普格县| 日喀则市| 娄烦县| 思茅市| 西峡县| 金沙县| 六安市| 莱州市| 中超| 儋州市| 德令哈市| 尚义县| 宣城市| 仪征市| 益阳市| 化隆| 龙游县| 长宁区| 龙井市| 扶余县| 湾仔区| 凤阳县| 宜良县| 嘉荫县| 宁德市| 邻水| 凤山县| 汽车|