scala 概述

概述

scala 就是 将函数式编程和面向对象编程进行融合, 并加入静态类型语言的一种编程语言
是一种运行在jvm上的,可以无缝和java 结合的编程语言

函数式编程

  • 函数就是对象, 函数就是头等值, 函数和字符串,整数处在同一个地位, 可以被当作函数参数或函数返回值保存到变量中, 也可以在函数中定义函数,就像定义整数一样,也可以定义匿名函数,并把函数插到代码任意地方
  • 不可变数据结构是函数式编程的基石
  • 方法不应该有任何副作用, 即可重入

静态类型:

  • 确定变量和表达式的类型, 所有类型都是明确制定,并非动态变化, 但却很好的解决了程序的过度冗长
  • 通过类型推断避免冗余性
  • 通过模式匹配获得灵活性
  • 好处:
    • 类型检查
    • 安全重构,
  • 用户可以自定义类或库
    • 评论:任何语言不是都可以这么做么, 没有什么特别的
  • actor并发编程模型
    • 评论: 其实就是基于消息的异步编程, 新瓶换旧酒, 异步编程框架都是基于消息的actor模型, 唯一一点, scala的actor编程框架使用会更加简单, 封装性更好。
      enter image description here

scala 思想来源

  • 采用java & c# 大部分, 表达式,句子,代码块 多数和java一样, 还采用了java的很多元素, 基本类型,类库和执行模式
  • 统一对象模型来自smalltalk
  • actor库来着erlang
  • 函数式编程方式来自和sml/ocaml/f# 为代表的ml家族语言
  • 方法调用和字段选择的统一访问原则来自eiffel