前言:
本来要睡了但感觉今天过得太废了所以惩罚自己再打一篇,明天要去自己最喜欢的导演开设的酒吧参加活动,超级期待的拉,虽然他的podcast目前结束要进行下一个阶段,但还是想介绍给大家对于社会新鲜人、快要出社会的人都非常有帮助,甚至可以说这是对我人生最为重要的podcast,它叫 <那些你不敢跟老闆说的事> 真的很棒推荐给大家。
话说
话说上次讲到Closure的时候,我相信很多人刚开始学时一定会和我一样矇,想说这到底是三小,这陋陋长的东西感觉就没这么好用,而且真的好长跟我的..比的话^^,我们先默哀三秒。好我们继续...
简短拉干
确实Closure是有一些撇部可以简短的,如此一来看起来也会比教清楚明了。
开始吧
一样我们先说明步骤
1.若已经知道参数及回传值的型别的话,则可以删除closure内参数及回传值的型别
2.若程式码只有一行的情况下可以省略return,因为此时系统会帮你预设return
3.可以利用$0、$1、$2..,代替进去的参数名称
看无拉
我知道!所以我要开始介绍了。
我们一样先写一个func
func addtion(num1:Int,num2:Int) -> Int{ return num1 + num2}addtion(num1: 1, num2: 1)// 2
然后我们把它转换为Closure,并把他加到变数内
let addtion:(Int,Int)->Int = { (num1:Int, num2:Int) -> Int in return num1 + num2}addtion(1, 1)// 2
简写啰
1.若已经知道参数及回传值的型别的话,则可以删除closure内参数及回传值的型别。
我们已经知道了closure的型别为传入两个整数后会回传一个整数,所以我们可以先将closure内参数删除
let addtion:(Int,Int)->Int = { (num1, num2) in return num1 + num2}
2.若程式码只有一行的情况下可以省略return,因为此时系统会帮你预设return。
没错你只有看到一行,所以省略return吧
let addtion:(Int,Int)->Int = { (num1, num2) in num1 + num2}
3.可以利用$0、$1、$2..,代替进去的参数名称。
记得是从$0依序代替喔
let addtion:(Int,Int)->Int = { $0 + $1}
$0是第一个参数,$1是第二个参数所以可以省略num1, num2了。
此时执行
addtion(1, 1)//2
结果会是一样的。
好的各位我真的要去睡觉了,祝我明天好运吧。