文档章节

swift--闭包

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


//闭包类型
(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
博文 66
码字总数 68719
作品 0
海淀
程序员
Swift讲解专题八——闭包

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

珲少 ⋅ 2016/05/14 ⋅ 3

《从零开始学Swift》学习笔记(Day 22)——闭包那些事儿!

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

智捷课堂 ⋅ 2015/10/14 ⋅ 0

Swift3.0 函数闭包与 Block

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

PetitBread ⋅ 2017/06/08 ⋅ 0

Swift使用闭包表达式

Swift中的闭包表达式很灵活,其标准语法格式如下: { (参数列表) ->返回值类型 in 语句组 } 其中,参数列表与函数中的参数列表形式一样,返回值类型类似于函数中的返回值类型,但不同的是后面...

智捷课堂 ⋅ 2014/09/04 ⋅ 0

swift语法学习

变量和常量 变量,可以修改的 常量,一经定义不能修改 在swift开发中,通常先定义常量,只有必须修改的时候,再改成 注意点: swift是一个对变量类型要求及其严格的语言 任何数据类型之间,都...

冷漠叻荭颜 ⋅ 2015/05/10 ⋅ 1

RxSwift之路 1#Swift语法知识准备

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

没故事的卓同学 ⋅ 2017/07/11 ⋅ 0

Swift 个人学习笔记 - 06: 闭包(Clousures)

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

amc ⋅ 2017/03/01 ⋅ 0

Swift2.0语言教程之闭包

Swift2.0语言教程之闭包 Swift2.0语言闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift中的闭包与C和Objective-C中的代码块(blocks)以及其他一些编程语言中的Lambda函数比...

大学霸 ⋅ 2015/07/20 ⋅ 0

Swift3.0 闭包(blcok)的全面介绍及使用

闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些编程语言中的匿名函数比较相似。闭包可以捕获和存储其所在上下文...

啪神 ⋅ 2016/12/28 ⋅ 0

getter & setter & private & get only 属性

// Person.swift import UIKit class Person: NSObject { // -- getter & setter 方法在 Swift 中极少用,仅供参考 // OC 中利用 getter 方法,编写懒加载,而 Swift 中提供了 lazy // 如果不...

TaciturnKnightYQ ⋅ 2015/12/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】

x64: TITLE Add and Subtract (AddSub.asm) ; This program adds and subtracts 32-bit integers. ; Last update: 2/1/02 ;.MODEL flat,stdcall x64 not su......

simpower ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

你真的明白RPC 吗?一起来探究 RPC 的实质

你真的明白RPC 吗?一起来探究 RPC 的实质 不论你是科班出身还是半路转行,这么优秀的你一定上过小学语文,那么对扩句和缩句你一定不陌生。缩句就是去除各种修饰提炼出一句话的核心,而不失基...

AI9o後 ⋅ 昨天 ⋅ 0

z-index设置失效?

今天碰到了一个问题,就是在给li设置提示框的时候,有用到遮罩效果,本来想把对应的出现在最顶层,可是不管将li设置的z-index值设为多大,li都没有出现在遮罩层之上。 我在网上查了z-index设...

IrisHunag ⋅ 昨天 ⋅ 0

CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析

CyclicBarrier、CountDownLatch以及Semaphore是Java并发包中几个常用的并发组件,这几个组件特点是功能相识很容易混淆。首先我们分别介绍这几个组件的功能然后再通过实例分析和源码分析其中设...

申文波 ⋅ 昨天 ⋅ 0

Java对象的序列化与反序列化

Java对象的序列化与反序列化

Cobbage ⋅ 昨天 ⋅ 0

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 昨天 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部