zoukankan      html  css  js  c++  java
  • swift的clourse:字面量化的函数、将函数字面量化-与函数的类型签名相同

    1、clourse的签名与函数的签名相同;

    所以两者可以相互赋值;

    2、可以将函数(表达式)字面量化;

    因为可以字面量化,所以和其它的值(变量)没有任何区别,可以存在变量存在的任何地方;

    3、clourse的表达有简化的形式。

    4、尾随闭包;

    //声明

    let 名字 = {(参数) -> 返回值 in closure的内容 }

    //调用

    let 返回值 = 名(参数)

    //声明与调用合并使用

    let 返回值 = {(参数) -> 返回值 in closure的内容}(实参)

    swift的函数式编程通过clourse实现

    http://yige.org/swift/closures.php#trailing_closures

    类型声明:

    使用直接函数类型定义新类型

    public typealias Completion = (_ result: Result<Moya.Response, MoyaError>) -> Void

    let networkCompletion: Completion = { result in

                  if self.trackInflights {

                    self.inflightRequests[endpoint]?.forEach { $0(result) }

                    objc_sync_enter(self)

                    self.inflightRequests.removeValue(forKey: endpoint)

                    objc_sync_exit(self)

                  } else {

                    pluginsWithCompletion(result)

                  }

                }

    //例子:直接函数类型定义变量

        var clouserGo:((_ str:String)->(String))!

        func funcGo(_ str:String)->String{

            return str

        }

       self.clouserGo = funcGo

            print(self.clouserGo("goo"))

            self.clouserGo = {str in return str}

            print(self.clouserGo("eeee"))

  • 相关阅读:
    计算机的基本存储单位
    挖坑
    HEOI2017 游记
    bzoj4815 [Cqoi2017]小Q的表格
    bzoj4817 [Sdoi2017]树点涂色
    hdu5824 graph
    4.5&4.7联考题解
    高飞
    无题
    51Nod 算法马拉松23 开黑记
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10197563.html
Copyright © 2011-2022 走看看