Skip to content

Latest commit

 

History

History
51 lines (30 loc) · 1.71 KB

6. 函数(总体介绍).md

File metadata and controls

51 lines (30 loc) · 1.71 KB

第六章:函数(function)

注:本章算是swift的核心(个人感觉),先记住swift中函数是"一等公民(first-class function)"

和OC中的函数相比,首先我们要先知道函数的三个知识点

  • 函数可以赋值给变量,也可以作为另外一个函数的参数返回值

       func loveSomeBody(name:String) {
             print("I love \(name)")
       }
         
        var loveSomeBodyFunc:((String) ->Void)?
        ///函数赋值给变量
        loveSomeBodyFunc = loveSomeBody
        loveSomeBodyFunc?("liaoWorking")//I love liaoWorking
    
         ///函数作为参数
         func doSomeThing(things: ((String)-> Void)?) {
             things?("NObody")
         }
    
         doSomeThing(things: loveSomeBodyFunc)///I love NObody
    
         ///函数作为返回值
         func lovingYou() -> ((String) ->Void)?{
             return loveSomeBody
         }
    
         loveSomeBodyFunc = lovingYou()
    
  • 函数可以捕获其局部作用域之前的变量(同OC,不赘述)。

  • 除了func创建函数 {}也可以创建函数,这个叫闭包表达式

这里延伸一下,我们平时在写懒加载的时候用法如下, {} 就是一个方法,()表示执行这个方法。 和平时调用方法func() 使用是类似的。

    lazy var label: UILabel = { () -> UILabel in
      return UILabel()  
     }()


    ///常见的map用法,里面就用到了{}
    /// $0的含义后面再讲,相信大部分同学都了它的意思。 一句话概况就是[闭包里面的默认值]。
    [1, 2, 3, 4].map{$0 * 2}