登峰造极境

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. Platforms
  3. MAC
  4. Swift
  5. 正文

Swift学习笔记-闭包

2016-01-02

参考书籍:
[1]管蕾.张玲玲.朱元波.Swift开发实战[M]. 北京:人民邮电出版社.2014.10-1 ISBN 978-7-115-36827-0
[2]陈隽.刘媛媛.Swift入门很简单[M]. 北京:清华大学出版社.2015.01-01 ISBN 978-7-302-38880-7

一、无参形式的闭包表达式
语法形式:

{()->返回值类型 in
语句
}

let/var 闭包表达式常量名称/闭包表达式变量名称/=无参形式的闭包表达式 //定义的语法形式:
闭包表达式常量名称/闭包表达式变量名称() //调用形式

例如:使用闭包表达式实现字符串"aaaa" 输出。


import Foundation

var str={() in
print("aaa")
}
str()

 

2、具有参数的闭包表达式
1) 一个参数语法形式

{
(参数名:数据类型)->返回值类型 in
语句
}

调用形式:闭包表达式常量名称/闭包表达式变量名称()


import Foundation
var str={ (str:String) in
print(str)
}
str("Hello Swift")

终端:

Hello Swift
Program ended with exit code: 0

2)多个参数的语法形式

{ (参数名1:数据类型,...参数N:数据类型)->返回值类型 in
语句
}

例如:任意值求和


import Foundation
var str={ (s1: Int,s2: Int)-> Int in
var sum = s1 + s2
return sum
}
print(str(1,2))

将闭包表达式作为函数一部分的混合实例

import Foundation
func copare( arr: [Int],value: Int,cb: (Num: Int,Value: Int)-> Bool )->Bool{//将闭包做参数传入
for item in arr{
if(cb(Num: item,Value: value)){
return true
}}
return false
}
var array = [20,80,100,50,20]

var v1 = copare( array, 500, {( num: Int, value: Int ) -> Bool in//用闭包判断

return num > value
})

if v1==true{
print("some bigger than 500 num is available")
}
else {
print("there are havn't num than bigger than 500")
}
var v2 = copare( array,40,{(num: Int,value: Int) -> Bool in
return num > value
})

if v2==true {
print("Thera are have bigger than 500 num in array")
}
else {
print("There are hav't num than bigger than 40")
}

终端:

调试失败,原因找不到

二、闭包表达式注意事项
1、指段类型

标签: 暂无
最后更新:2016-01-25

代号山岳

知之为知之 不知为不知

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号