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"))

  • 相关阅读:
    python Exception中的raise、assert
    python循环语句与其他编程语言不同之处
    【转】最大似然估计
    尝试发表代码
    奇异分解(SVD)
    Python学习笔记3-string
    梯度下降法
    前后端分离
    Trie树
    HashMap的工作原理以及代码实现,为什么要转换成红黑树?
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10197563.html
Copyright © 2011-2022 走看看