scala 概述
概述
scala 就是 将函数式编程和面向对象编程进行融合, 并加入静态类型语言的一种编程语言
是一种运行在jvm上的,可以无缝和java 结合的编程语言
函数式编程
- 函数就是对象, 函数就是头等值, 函数和字符串,整数处在同一个地位, 可以被当作函数参数或函数返回值保存到变量中, 也可以在函数中定义函数,就像定义整数一样,也可以定义匿名函数,并把函数插到代码任意地方
- 不可变数据结构是函数式编程的基石
- 方法不应该有任何副作用, 即可重入
静态类型:
- 确定变量和表达式的类型, 所有类型都是明确制定,并非动态变化, 但却很好的解决了程序的过度冗长
- 通过类型推断避免冗余性
- 通过模式匹配获得灵活性
- 好处:
- 类型检查
- 安全重构,
- 用户可以自定义类或库
- 评论:任何语言不是都可以这么做么, 没有什么特别的
- actor并发编程模型
- 评论: 其实就是基于消息的异步编程, 新瓶换旧酒, 异步编程框架都是基于消息的actor模型, 唯一一点, scala的actor编程框架使用会更加简单, 封装性更好。
- 评论: 其实就是基于消息的异步编程, 新瓶换旧酒, 异步编程框架都是基于消息的actor模型, 唯一一点, scala的actor编程框架使用会更加简单, 封装性更好。
scala 思想来源
- 采用java & c# 大部分, 表达式,句子,代码块 多数和java一样, 还采用了java的很多元素, 基本类型,类库和执行模式
- 统一对象模型来自smalltalk
- actor库来着erlang
- 函数式编程方式来自和sml/ocaml/f# 为代表的ml家族语言
- 方法调用和字段选择的统一访问原则来自eiffel