• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift入门篇-闭包和函数swift入门篇-函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 今天主要是给大家分享的是 swift中闭包的用法,我个人觉得闭包就是函数的简写方法,如果您函数不是很熟悉请查阅 swift入门篇-函数

 

1:函数类型

函数类型
 var  变量 :(类型)->返回值 =函数名

说明:
1:函数名 表示函数地址
2:(类型)->返回值 表示函数类型
3:函数类型必须和函数名的参数和返回值一致

例子

/*

1:func 是函数关键字
2:Say是函数名,表示函数的地址
3:Say函数 参数是整形 返回值为布尔类型
*/

func Say(num:Int)->Bool{

return num > 10
}
var By:(Int)->Bool = Say

/*
1:Say是函数名的地址,并且函数类型,参数为整形,返回值布尔类型
2:(Int)->Bool 表示 函数类型,参数为整形 ,返回值为布尔类型。
即:By是函数变量(参数为整形,返回值为布尔类型) 指向函数名(Say)
*/

var b = By(12) //by(12)直接调用函数
println(b)

运行结果
true

2:闭包格式


 格式 :
  {  
    (参数:类型) ->返回类型  in  
 
     执行方法
   
     return 返回类型
   }

说明:
1;闭包主要指向函数类型
2:闭包的参数必须和函数类型的参数和返回值一致

例子

/*

函数Getlist说明
参数:
  1:第一个参数 整形集合变量
  2:第二参数,函数类型变量 参数为整形返回值布尔类型
返回值
  整形集合

*/


func GetList(arr:Int[] , pre:(Int)->Bool) ->Int[]{
    
   //定义一个空的可变整形集合
    var tempArr = Int[]()

    for temp in arr {

        if pre(temp){
            tempArr += temp;
        }
    }

    return tempArr;
}


/*
调用Getlist 说明
第一个参数 整形数组 [1,2,3,4]
第二个参数  闭包 来指向给 函数类型 。
{(s) in return s>2} 闭包类型说明,参数为整形,返回值为布尔类型
*/
let arr=GetList([1,2,3,4],{(s:Int) in return s>2})
println(arr)

运行结果
[3, 4]

 3:闭包简写方法

  1;第一种简写 :省略 参数类型和括号

  2:第二种简写 : 省略 参数类型和括号,return关键字

  3:第三种简写 : 参数名称缩写 (用$0代表第一个参数,$1代表第二个参数)

/*

函数Getlist说明
参数:
  1:第一个参数 整形集合变量
  2:第二参数,函数类型变量 参数为整形返回值布尔类型
返回值
  整形集合

*/


func GetList(arr:Int[] , pre:(Int)->Bool) ->Int[]{
    
   //定义一个空的可变整形集合
    var tempArr = Int[]()

    for temp in arr {

        if pre(temp){
            tempArr += temp;
        }
    }

    return tempArr;
}


//第一种简写 :省略 参数类型和括号
var Arr = GetList([1,2,3,4],{s in return s>2})

//第二种简写 : 省略 参数类型和括号,return关键字
Arr = GetList([1,2,3,4], {s in s>2})

 //第三种简写 : 参数名称缩写

 Arr = GetList([1,2,3,4],{$0>2}) //其中$0表示第一个参数


println(Arr)

以上3种用法的运行结果为

[3, 4]

 4:尾随闭包

官方定义:尾随闭包是一个书写在函数括号之后的闭包表达式,函数支持将其作为最后一个参数调用

/*

1: 函数 Fuction 的参数 函数类型
2: 参数为函数类型,函数类型,参数为空,返回值为空

*/

func Fuction(closure: () -> ()) {
    println("无参数,无返回值的韩式类型")
}



//-----------------第一种调用方法------------
/*
调用函数Fuction
1:参数为闭包
2:闭包的参数为空,返回值为空

*/
Fuction({

})

//-----------------第二种调用方法------------

Fuction() {
 
}

以上2种调用方法的运行结果都是

无参数,无返回值的韩式类型

 后面的文章,我回陆续把我学习到swift语言的知识写出来形成一个系列。由于是新语言,难免有不足,欢迎给我提出意见。也可以加我QQ 1436051108一起讨论,如果您有什么问题,也可以直接在QQ留言发给我,我看到之后第一时间回复您

  最后总结一下。送上一直思维导图,作为文章的结束


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap