swift 语言的编程范式
2016-03-29 01:06
267 查看
一、函数式编程
对于支持函数式编程的语言,其一般的特点可能包含以下几种:
1、支持递归
Swift 是支持递归的,事实上现在不支持递归的编程语言已经很难找到了。在 Swift 里写一个递归调用和其他编程语言并没有什么区别:
2、函数本身是语言First Class的组成要素,且支持高阶函数和闭包
Swift 的高阶函数和闭包
在 Objective-C 时代,使用 block 来实现高阶函数或者闭包已经是非常成熟的技术了。 Swift 相比 Objective-C 的提高在于为函数式编程添加了诸多语法上的方便。
首先是高阶函数的支持,可以在函数内定义函数,下面就是一个很简洁的例子。
3、函数调用尽可能没有副作用 (Side Effect) 的条件
在计算机科学中,函数副作用指当调用函数时,除了返回函数值之外,还对主调用函数产生附加的影响。例如修改全局变量
(函数外的变量) 或修改参数 (wiki)。
函数副作用会给程序带来一些不必要的麻烦。
二、面向对象编程
三、面向协议编程
四、面向值编程
对于支持函数式编程的语言,其一般的特点可能包含以下几种:
1、支持递归
Swift 是支持递归的,事实上现在不支持递归的编程语言已经很难找到了。在 Swift 里写一个递归调用和其他编程语言并没有什么区别:
Swift 的高阶函数和闭包
在 Objective-C 时代,使用 block 来实现高阶函数或者闭包已经是非常成熟的技术了。 Swift 相比 Objective-C 的提高在于为函数式编程添加了诸多语法上的方便。
首先是高阶函数的支持,可以在函数内定义函数,下面就是一个很简洁的例子。
在计算机科学中,函数副作用指当调用函数时,除了返回函数值之外,还对主调用函数产生附加的影响。例如修改全局变量
(函数外的变量) 或修改参数 (wiki)。
函数副作用会给程序带来一些不必要的麻烦。
二、面向对象编程
三、面向协议编程
四、面向值编程
相关文章推荐
- Swift 实例方法&类型方法(九)
- Swift里通知的使用NSNotificationCenter
- Swift解析Json返回值为null的问题
- 使用Swift打造动态库SDK和DemoAPP时所遇到的(Xcode7.3)
- 仿QQ侧滑边栏
- 关于Swift中出现dyld: Library not loaded: @rpath/libswiftCore.dylib错误的解决方法
- swift:用UIWebView读取本地html文件
- Swift -- !和?的使用
- swift系统学习控件篇:UITableView+UICollectionView
- Swift学习
- 【swift_3】swift之UITableView和UINavigation视图控制器
- swift 之?和!
- 【swift_2】swift之三大控件 UILabel、UITextField、UIButton 的使用
- 【swift_1】swift基本语法及事例Demo
- Swift 2.2 的新特性
- Swift 2.2 的新特性
- Swift2.0下UICollectionViews拖拽效果的实现
- swift user guide.pdf下载
- Swift-属性、方法、下标
- 利用...来字符检測(swift)