屁屁痛了一整晚昨天全程跪着打文章,都这样了你们该进来看一下了吧,顺带一提如果有对Swift其他主题或功能感兴趣的话,可以在下面留言让我知道,我会查资料并整理给大家,今天刚吃完早餐没什麽要抱怨的..,那就直接开始吧。
上次我们聊完Closure的是什麽及如何缩写它,这次我想聊Closure的其它用法。
很多事情感觉看似不甘你的事,但那些鸟事也会自己找上门来...,你一定没办法想像阵列处理跟Closure有关吧!!
我们知道阵列处理的方法有很多,像是map、filter、forEach、sort...一大堆(如果有兴趣可以参考板上的巨巨写的有关阵列处理的文章,真的写很好),而今天我们来讲阵列方法结合Closure的处理。
很多人在处理阵列时时常会看到他吧,以前我还经常跟forEach搞混呢!简而描述他们的差别就是,map在阵列处理结束後会存到新的阵列,而forEach不会。还记得以前在写JS时使用map都会搭配箭头函式做使用。而今天的Swift我们就要搭配Closure做使用,诶~你会发现他们两个都是匿名函式喔酷吧。
我们先建立一个阵列
let numArray = [1,3,5,7,9]
接下来我们要使用map来达到让每个数都+1,并他放入新的阵列
numArray.map({ (num:Int)->Int in return num+1 })
我们知道透过map我们可以将Array每个成员拿出来处理,而参数num就会依序收到每个成员再执行後面的动作,最後他会回传一个新的阵列,我们把它放入newArray的变数中
let newArray = numArray.map({ (num:Int)->Int in return num+1 }) print(newArray) // [2,4,6,8,10]
很简单对吧~~
我们先根据上篇文章的内容进行简写,我们在重新建立一个新的阵列
let newArray2 = numArray.map({ (num:Int)->String in return "new number \(num)"
let newArray2 = numArray.map({ (num)in return "new number \(num)"
let newArray2 = numArray.map({ (num) in "new number \(num)"
let newArray2 = numArray.map({ "new number \($0)" }) print(newArray2) //["new number 1","new number 3","new number 5","new number 7","new number 9"]
没错是可以的,接下来我们要再介绍两个简写的条件及方法。
如果Closure是函式最後一个参数时则可以把它放到括号的後面。
let newArray2 = numArray.map(){ "new number \($0)" }
如果Closure是函式唯一的参数时则可以把小括号拿掉
let newArray2 = numArray.map{ "new number \($0)" } print(newArray2) // ["new number 1","new number 3","new number 5","new number 7","new number 9"]
<<: 【课程推荐】2021/5/8~5/9 Angular前端开发框架入门班
>>: AutoML应用分享║DataRobot 年度线上大会 2021
『请问, 有流程图可以看吗?』每次我看别人的系统时, 都会想这样问 身为一个需要透过视觉来辅助理解的...
终於到最後一天了,那就不罗嗦直接进入正题吧! 关於 rendering.rb 之前我们的做法是把 r...
我们之前在喂历史资料,都是先用 shioaji 下载下来,然後再用 padas 转成 datafra...
此篇会着重在 Bootstrap 5 响应式的介绍以及使用方法。 RWD 响应式网页设计 (Res...
续角色介绍,但也是快要没梗,只能说真正有趣的会是几个Vivy经历过的事件扭转,如果透过AWS相关服务...