在这里想简单的介绍下一个函数,由其来引申出闭包的使用
这个方法就是利用数组过滤的方式,这段函数的意思就是从package的emoticons数组中根据em,chs是不是等于哈哈这个字符串
如果是的话,那么就往这个过滤的函数的返回值数组中增加一个元素
这个函数的简介如下
if let emoticon = package.emoticons.filter({ (em) -> Bool in
return em.chs == "哈哈"
}).last
{
print("emoticon有值")
}
还有另外一种写法,这里面就是如果闭包有返回值,闭包的代码只有一句的话,可以省略return,所以我们可以把上面的return em.chs == "哈哈"的return给省略
如果有参数,参数可以使用$0,$1来代替参数1,参数2,所以我们可以把上面的em给替换了。
let emoticon = package.emoticons.filter({$0.chs == string
}).last
if emoticon != nil
{
print(emoticon)
}