Scala基本函数与代码块、求值策略

Block

代码块用于用于组织多个表达式。

Block也是一个表达式,其最终的求得的值是最后一个表达式的值。

写法1:
{exp1;exp2}   //全部表达式卸载一行上面,表达式之间用;分号隔开



写法2:
{
exp1    //一个表达式一行
exp2    //末尾不写分号
...
}

 

函数

def functionName( param:ParamType, param1:ParamType1....):returnType={

//function body :expressions

}

 

返回值自动命名为res0,且类型时String类型的。这是标准写Scala函数的方法;

个人觉得Scala和Shell语言还是很像的,有Shell基础的人写起来应该更加简单一些。

 

 

函数也可以不表明返回值类型,Scala会自动识别函数的返回值类型

 

 

当函数{}内只有一个表达式的时候,可以省略{}。

{}之间的叫做代码块,而一个表达式也是一个代码块。

 

 

 

Scala函数的求值策略

Scala里有两种求值策略(Evaluation Strategy)

  • Call By Value --对函数的实参求值,且仅求值一次之后赋值给实参之后进行带入;
  • Call By Name --函数实参每次在函数体内被用到是会被求值使用;

Scala通常使用Call By Value;

如果函数形象类型以 “ => “开头那木会使用Call By Name;

def foo(x : Int) = x   //Call By Value

def foo(x : => Int) = x  //Call By Name

eg:

test1是Call By Value,在运算时:先运算 x = 3 + 4----->x = 7  ------>将x = 7 带入函数中再运算;

test2 是Call By Name,在运算时:直接将x = (3 + 4)带入函数中运算。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值