文档章节

swift--闭包

卡奇匠
 卡奇匠
发布于 2016/03/03 23:15
字数 378
阅读 63
收藏 1


//闭包类型
(a: Int, b:Int) -> Int //有参有返回值
() -> Int //无参有返回值
(a: Int) ->() //有参无返回值

() -> () //无参无返回值



   /*

        -swift 里边的闭包跟我们oc里的block 是非常的类似
        -
是一个预先定义好的代码块
        -
可以作为函数的参数传递,也可以是函数的返回值
        -
在需要的时候调用()
        -
在使用self 的时候注意循环引用
       
闭包格式: 闭包名 = {(参数名:参数类型,..)-> 返回值类型 in 执行代码}

    */

   
   
//定义一个有参数有返回值的闭包
    func demo9(num a: Int, num1 b: Int) ->Int {
       
//闭包
        let closure = {(num a: Int, num1 b: Int) -> Int in
           
let m = a + b
           
return m
        }
       
//调用
        let result = closure(num: a, num1: b)
       
//函数的返回值
        return result
    }
   
   
//定义一个有参数有返回值的函数
    func demo7(num a: Int, num1 b: Int){
       
func demo8(num a: Int, num2 b: Int)->Int {
           
print("aa = \(a + b)")
           
return a + b
        }
     
let result = demo8(num: a, num2: b)
       
print("result =\(result)")
    }
   
   
//定义一个有参数无返回值闭包
    func demo5(){
       
       
let closure = {(num a: Int, num2 b: Int) in
           
print(a + b)
        }
       
//调用闭包
        closure(num: 2, num2: 3)
    }
   
   
//定义个有参数无返回值函数
    func demo3(num a: Int, num1 b: Int){
       
func demo4(num a: Int, num2 b: Int){
           
print(a + b)
        }
       
demo4(num: a, num2: b)
    }
   
   
//定义一个无参无返回值 的闭包
    func demo2(){
       
//无参无反闭包
        let closure = {
           
print("无参无返回值 不用in")
        }
        closure()
    }
   
   
//定义无参无返回值 函数嵌套
    func demo(){
       
func demo1(){
           
print("jaja")
        }
       
//调用
        demo1()

    }


© 著作权归作者所有

共有 人打赏支持
卡奇匠
粉丝 20
博文 67
码字总数 68740
作品 0
海淀
程序员
Swift讲解专题八——闭包

Swift讲解专题八——闭包 一、引言 Swift中的闭包是有一定功能的代码块,这十分类似于Objective-C中的block语法。Swift中的闭包语法风格十分简洁,其作用和函数的作用相似。 二、从一个系统函...

珲少
2016/05/14
818
3
《从零开始学Swift》学习笔记(Day 22)——闭包那些事儿!

原创文章,欢迎转载。转载请注明:关东升的博客 我给Swift 中的闭包一个定义:闭包是自包含的匿名函数代码块,可以作为表达式、函数参数和函数返回值,闭包表达式的运算结果是一种函数类型。...

智捷课堂
2015/10/14
29
0
Swift3.0 函数闭包与 Block

最近新接手了一个Swift项目,花点时间做点小结,以做记录 我的博客链接 Swift中定义一个基本函数 这里下划线 的作用用来忽略外部參数名,具体可以参考这篇文章 带参函数定义 举栗子,网络数据...

PetitBread
2017/06/08
0
0
RxSwift之路 1#Swift语法知识准备

在开始学习 RxSwift 之前,一定要对 Swift 相关语法有所了解,否则就很难理解为什么可以这样。关于 Swift 的学习其实只要看看 Swift 的官方文档就可够了。我之前也列过一些学习资源:来自一线...

没故事的卓同学
2017/07/11
0
0
Swift 个人学习笔记 - 06: 闭包(Clousures)

本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的...

amc
2017/03/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python3.6 取整除法

python3.6 中取整除法运算逻辑如下: d 非零,那么商 q 满足这样的关系: a = qd + r ,且0 ≤ r n1=7//3#7 = 3*2 +1n2=-6.1//3#-7 = 3*(-3)+2'{},{}'.format(n1,n2) 从运行结果可以...

colinux
21分钟前
3
0
阶段总结——用虚拟机搭建一个高可用负载均衡集群架构

[toc] linux基本知识已经介绍完,现有一个业务需要操作,通过对这个项目的操作,可以复习、总结、巩固之前的知识点; ** 用13台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,...

feng-01
24分钟前
0
0
mysql 设置utf8字符集 (CentOS)

1.查看数据库及mysql应用目前使用的编码方式 (1)链接mysql 客户端 (2)执行:status 结果: 2.修改mysql 应用的字符编码(server characterset ) (1)打开配置文件:vim /etc/mysql/my...

qimh
24分钟前
0
0
windows无法格式化u盘解决方法

1。点开始-运行-输入cmd-format f: /fs: fat32 (这里f:是指U盘所在盘符) 这个格式化会很慢 请耐心等待

大灰狼wow
35分钟前
0
0
MySql 8.0连接失败

原来,MySql 8.0.11 换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_s...

放飞E梦想O
52分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部