-
call by value 对函数实参求得值后再才传给函数,且仅求一次--常用
call by name 函数实参每次在函数体内被用到时才会求值;形参以=>开头,会使用call by name
查看全部 -
函数式编程
不变性(immutability)
为了获取引用透明性,任何值都不能变化
查看全部 -
http://www.imooc.com/learn/613查看全部
-
递归函数基于栈
尾递归中所有递归形式的调用都出现在末尾,当编译器检测到一个函数调用尾递归时,就覆盖当前的活动记录而不是在栈中创建一个新的
@annotation.tailrec 告知scala,对此为函数进行尾递归优化
查看全部 -
柯里化把具有多个参数的函数转换未一条函数链,每个节点上是单一参数
查看全部 -
scala中函数是第一等公民,函数类似于变量,但具有函数的类型
类型格式A=>B ,表示一个接受类型A的参数,并返回类型B的函数
匿名函数,就是函数常量,也称为函数文字量,定义格式未(形参列表)=>{函数体}
查看全部 -
scala中所有的运算都是基于表达式
call by value 对函数实参求值,且仅求一次--常用
call by name 函数实参每次在函数体内被用的时都会求值;形参以=>开头,会使用call by name
查看全部 -
try不是语句是表达式会返回一个值
案例中的下划线是通配符可通配所有对象
match类似于swith
查看全部 -
if是表达式,不是语句:if(exp) valA else valB
for comprehension实现循环的推导式
查看全部 -
Block:代码块,最终的求得值是最后一个表达式的值
函数:def functionName(param:ParamType):ReturnType={
//function body:experssions
}
多个参数用逗号分隔
查看全部 -
Any父类(基类):下辖AnyVal和AnyRef;最后子类都是Nothing
AnyVal值类型;Numeric\Boolean\Char\Unit=void
AnyRef引用类型:All java.* ref types \All scala.* ref types;AnyRef最后的子类Null
高精度向低精度赋值时,需做隐式转换;
Nothing通常用于函数异常终止
String与java的String相同,引入插值特性interpolation
ie:
val name="wanglei"
S"My name is ${name}"
查看全部 -
Nothing通常用于函数异常终止查看全部
-
安装scala,sbt,IDEA+scala插件
查看全部 -
<a href="http://docs.scala-lang.org/overviews/collections/introduction.html" target="_blank">http://docs.scala-lang.org/overviews/collections/introduction.html</a>查看全部
-
@ annotation. tailrec
def factorial(n: Int,m: Int): Int=
if(n<=e)m
else factorial(n-1,m*n)
// @ annotation. tailrec 是尾递归优化必须
factorial(5,1)
查看全部
举报