Swift - 36 - 结尾闭包(Trailing closure)和捕获数值(Capturing Values)的简单介绍
//: Playground - noun: a place where people can play import UIKit // 初始化一个整数数组
var arr = [1, 3, 5, 7, 8, 10, 12, 2, 0, 11, 9] // 闭包原始模样
arr.sort(){(a: Int, b: Int) -> Bool in
return a > b
} // Trailing closure
// 结尾闭包:就是将闭包这个参数写在函数括号的外面, 阅读起来感觉好一些..
// 不过有一个前提, 就是闭包必须是最后一个参数
// 感觉更像是在写一个函数
arr.sort() {(a: Int, b: Int) -> Bool in
return a > b
} // Capturing Values
// 闭包内如果用到的变量不是在闭包中所定义的, 闭包会自动向外面一层寻找
// 在swift中使用这个特性不会引发内存相关的问题
var number = 5
arr.sort() {
return fabs(Float($0 - number)) < fabs(Float($1 - number))
}
Swift - 36 - 结尾闭包(Trailing closure)和捕获数值(Capturing Values)的简单介绍的更多相关文章
- Swift中的闭包(Closure) 浅析
转载自:http://www.devtalking.com/articles/closure-expressions-in-swift/ 闭包在Swift中非常有用.通俗的解释就是一个Int类型里存储 ...
- Swift中的闭包(Closure)[转]
闭包在Swift中非常有用.通俗的解释就是一个Int类型里存储着一个整数,一个String类型包含着一串字符,同样,闭包是一个包含着函数的类型.有了闭包,你就可以处理很多在一些古老的语言中不能处理的事 ...
- Swift学习:闭包(Closures)
/* 闭包(Closures)* 闭包是自包含的功能代码块,可以在代码中使用或者用来作为参数传值.* 在Swift中的闭包与C.OC中的blocks和其它编程语言(如Python)中的lambdas类 ...
- Swift 中的闭包与 C 和 Objective-C中的 blocks 以及其它一些编程语言中的 lambdas 比較类似。
闭包是功能性自包括模块,能够在代码中被传递和使用. Swift 中的闭包与 C 和 Objective-C中的 blocks 以及其它一些编程语言中的 lambdas 比較相似. 闭包能够 捕获 和 ...
- Swift 学习- 08 -- 闭包
// 闭包是自包含的函数代码块, 可以在代码中被传递和使用, swift 中的闭包 与 C语言 和 OC 中的代码块 (blocks) 以及其他一些编程语言中的匿名函数比较类似 // 闭包可以捕获和存 ...
- Swift 学习笔记 (闭包)
闭包是可以在你的代码中被传递和饮用的功能性独立模块.Swift中的闭包和C以及Objective-C中的Block很像,和其他语言中的匿名函数也很像. 闭包能捕获和存储定义在其上下文中的任何常量和变量 ...
- swift中的闭包总结
闭包是功能性自包含模块,可以在代码中被传递和使用. Swift 中的闭包与 Objective-C中的 blocks 以及其他一些编程语言中的 lambdas 比较相似. 闭包的基本语法 闭包表达式语 ...
- 浅析匿名函数、lambda表达式、闭包(closure)区别与作用
浅析匿名函数.lambda表达式.闭包(closure)区别与作用 所有的主流编程语言都对函数式编程有支持,比如c++11.python和java中有lambda表达式.lua和JavaScript中 ...
- Swift基础之闭包
内容纲要: 1.闭包基础 2.关于闭包循环引用 正文: 1.闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用.Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks) ...
随机推荐
- C题
C - C Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Description Ass ...
- SCJP_104——题目分析(1)
1.1) public class ReturnIt{2) returnType methodA(byte x, double y){3) return (short)x/y*2;4) }5) }wh ...
- Linux文本操作三大利器总结:sed、awk、grep
grep:(去除一行中需要的信息,同类与cut) grep全称是Global Regular Expression Print #常规用法 # grep -n root /etc/passwd :ro ...
- bzoj3576: [Hnoi2014]江南乐
Description 小A是一个名副其实的狂热的回合制游戏玩家.在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏. 游戏的规则是这样的,首先给定一 ...
- JS和正则表达式验证手机号码、邮箱等
<-------------------------------------验证手机号码---------------------------------------------> fun ...
- 完整的struts.xml文件骨架
完整的struts.xml文件骨架可以直接拿来用,修改一下就可以啦. <?xml version="1.0" encoding="UTF-8"?> ...
- BZOJ1984: 月下“毛景树”
1984: 月下“毛景树” Time Limit: 20 Sec Memory Limit: 64 MBSubmit: 713 Solved: 245[Submit][Status] Descri ...
- 【模拟】Vijos P1062 迎春舞会之交谊舞
题目链接: https://vijos.org/p/1062 题目大意: 一群男女站成一排,一男一女配对,女的只找左边第一个空闲的男生,给定前n个女生左边的额男生个数,问前n个女生到男伴之间共有几个男 ...
- HDU_1401——分步双向BFS,八进制位运算压缩,map存放hash
Problem Description Solitaire is a game played on a chessboard 8x8. The rows and columns of the ches ...
- poj1190 生日蛋糕 dfs
题意:生日蛋糕有m层,总体积是V.从下向上,每一层的半径r和高度h都是递减的. 给m.v,求最小的表面积s.(不算底面接地的面积) 题目链接:poj1190 剪枝都还没加..样例输出都是错的...还没 ...