1.闭包
swift中的闭包类似于oc中的block回调,但是swift的闭包有很多种写法,具有多变性,今天就来总结一下最近swift的使用
1.完整写法
上面是写法,下面是调用。打印出 hello ji加油
2.在block中进行逻辑判断,再返回值
如图,下面调用以后返回值为1.
然后我们可以进行闭包表达式优化
1.类型优化, 由于函数中已经声明了闭包参数的类型, 所以传入的实参可以不用写类型
2.返回值优化, 同理由于函数中已经声明了闭包的返回值类型,所以传入的实参可以不用写类型
3.参数优化, swift可以使用$索引的方式来访问闭包的参数, 默认从0开始
逃逸闭包:
闭包捕捉值
闭包在网络请求中的使用:
然后在VC里面调用
2.代理
然后实现
下面就是例子
3.结构体
4.扩展: 就是给一个现存类, 结构体, 枚举或者协议添加新的属性挥着方法的语法, 无需目 标源码, 就可以吧想要的代码加到目标上面
但有一些限制条件需要说明:
1.不能添加一个已经存在的方法或者属性;
2.添加的属性不能是存储属性, 只能是计算属性;
格式:
extension 某个先有类型{
//增加新的功能
}
5.数组,字典操作
swift中进行数组替换的方法
var arr = [1,2,3]
arr.replaceSubrange(0...1, with: [99,88,77])
2个字典的合并
//字典合并
var dic5 = ["name":"hihello","age":23] as [String : Any]
let dic6 = ["teacher":"wang"]
for(key,value)indic6
{
dic5[key] = value
}