美文网首页
swift3.0 之 闭包(Closure)

swift3.0 之 闭包(Closure)

作者: Just丶Go | 来源:发表于2017-05-26 17:49 被阅读0次

swift闭包 格式
(parameters) ->(return type) = { }
parameters -> 参数
return type -> 返回值的类型
{} 内的内容 下面详细讲解

  1. parameters 详解
    这个 参数 可以是常规数据类型, 也可以是元组
  2. return type 返回的数据类型
  3. {} 里的内容 根据 parameters 内的内容变化
    1. 有参数,有返回值 {a , b ,c in return d}
    2. 有参数,无返回值 {a, b in }
    3. 无参数 有返回值 { return}
    4. 无参数,无返回值 { }
      下面是使用实例
      第二个 界面 push之后的 用于闭包逆传值

import UIKit

class SecondController: UIViewController {
    /// 闭包声明 一 : 很笨
    var returnResultClosure: (String) -> (Void) = {
        string in
    }
    var name = String()

    /// 闭包声明 二 : 比较好
    var block: ((Int,Int) ->Void)?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.orange
        // Do any additional setup after loading the view.
        
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        returnResultClosure("几点啦,大哥")
        block!(1, 5)
        self.navigationController?.popViewController(animated: true)
    }
}

// 第一个控制器 接收 逆传返回的值

import UIKit

class ViewController: UIViewController {
    var integer: Int = Int()
    
    override func viewDidLoad()
    {
        super.viewDidLoad()
        self.title = "首页"
        self.view.backgroundColor = randColor()
       
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
    {
        self.view.backgroundColor = randColor()
        // Do any additional setup after loading the view, typically from a nib.
        print("屏幕点击")
        let vc = SecondController()
        vc.name = "alpha go"
        vc.returnResultClosure = {
            result in
            print(result)
        }
        vc.block = {
            a, b in
            print(a, b)
        }
        self.navigationController?.pushViewController(vc, animated: true)
    }

}

相关文章

  • swift3.0 之 闭包(Closure)

    swift闭包 格式(parameters) ->(return type) = { }parameters -...

  • JavaScript----闭包

    javascript之闭包 闭包的概念     闭包(closure)是 JavaScript 的一种语法特性。 ...

  • 关于rust中的闭包(一)

    闭包 在计算机中,闭包 Closure, 又称词法闭包 Lexical Closure 或函数闭包 functio...

  • 关于闭包

    闭包的英文是closure,又称词法闭包(Lexical Closure)和函数闭包(Function Closu...

  • 理解闭包

    闭包 何为闭包 闭包(Closure)是词法闭包(Lexical Closure)的缩写 高级程序设计中写有权访问...

  • python之闭包与装饰器

    1 闭包 维基百科给出的解析:闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭...

  • 闭包,定时器

    问题 1.什么是闭包? 有什么作用 闭包(英语:Closure),又称词法闭包(Lexical Closure)或...

  • [Code] 优雅地使用python闭包

    在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(funct...

  • golang:函数闭包

    From wiki 闭包在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure...

  • 理解Python闭包

    1.什么是闭包? 维基百科: 在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的...

网友评论

      本文标题:swift3.0 之 闭包(Closure)

      本文链接:https://www.haomeiwen.com/subject/yypxfxtx.html