函数式编程:
支持闭包和高阶函数,支持惰性计算(lazy evaluation)。使用递归作为控制流程的机制。加强了引用透明性。没有副作用。以我的理解scala中有“万物皆函数”的感觉,学过Java,C++的人都知道,函数简单来说就是接收参数、执行操作、返回数值。在scala中比如x+y这样的表达式也可以看做一个函数,x,y是参数,+是操作,相加的和就是返回值了。本人也是刚学习scala,记下这篇笔记和大家共勉。
表达式类型:
val 不变量,定义时须有一个初始值,且此后不能改变
var 可变量,定义后可以重新赋值
lazy val 惰性常量,定义时不会立即求值,而是在第一次使用时才会求值
例如:
支持闭包和高阶函数,支持惰性计算(lazy evaluation)。使用递归作为控制流程的机制。加强了引用透明性。没有副作用。以我的理解scala中有“万物皆函数”的感觉,学过Java,C++的人都知道,函数简单来说就是接收参数、执行操作、返回数值。在scala中比如x+y这样的表达式也可以看做一个函数,x,y是参数,+是操作,相加的和就是返回值了。本人也是刚学习scala,记下这篇笔记和大家共勉。
表达式类型:
val 不变量,定义时须有一个初始值,且此后不能改变
var 可变量,定义后可以重新赋值
lazy val 惰性常量,定义时不会立即求值,而是在第一次使用时才会求值
例如:
val x = 1 //> x : Int = 1
var y = 2 //> y : Int = 2
lazy val z = x + y //> z: => Int
从这张图可以看出scala的类型体系,其中Nothing是所有类型(包括Null)的子类,Null是所有引用类型的子类。Any是所有类的父类。</