函数式编程
函数应该是纯粹的,是绝对安全的,过程为: 输入 => 执行 => 结果。
函数应满足如下条件:
1.不能修改传递给函数的变量!
2.不能修改全局变量!
3.对于同样的输入参数,返回值总是相同的!
// 如以下方法,入参不会被改变;不涉及全局变量;同样的入参,返回值一样
func square(x: Int) -> Int {
return x*x;
}
链式编程
链式编程可以把对同一个实例对象同时调用N次方法。代码的可读性更好。 比较有名的第三方库:OC的Masonry、Swift的SnapKit。
//未处理代码
override func viewDidLoad() {
super.viewDidLoad()
self.method1()
self.method2()
self.method3()
self.method4()
}
func method1() {
print("method1")
}
func method2() {
print("method2")
}
func method3() {
print("method3")
}
func method4() {
print("method4")
}
// 链式处理后代码
override func viewDidLoad() {
super.viewDidLoad()
_ = self.method1().method2().method3().method4()
}
func method1() -> LineViewController {
print("method1")
return self
}
func method2() -> LineViewController {
print("method2")
return self
}
func method3() -> LineViewController {
print("method3")
return self
}
func method4() -> LineViewController {
print("method4")
return self
}
响应式编程
最大的特点就是不需要考虑调用顺序,只需要知道考虑结果。先监听事件,当事件发生时,再触发相应的操作。事件可以被等待,可以触发过程,也可以触发其它事件。
比较有名的第三方库:OC的ReactiveCocoa,Swift的RxSwift,关于这两个库的使用,以后会出相应文章,暂且不提。
网友评论