Scala 学习心得(二): 关于 Scala 的函数。

6 篇文章 0 订阅
4 篇文章 0 订阅
我更倾向于像理解对象那样来理解 scala 的函数,因为 Scala 函数里面有一个叫做“函数文本” 的概念(这个概念在 ActionScript 中也有,在 AS 中,函数文本是指 未命名的函数)。在 Scala 中,函数文本被编译成一个类,类在运行期实例化的时候是一个函数值(function value)。所以,在源代码里面的那个叫“函数文本”,运行期对象里面的那个叫 函数值。很像“类”……
Scala 语言中的占位符 “_”, 太可爱了,太可爱了。对于那些简单的一看函数名就知道用来干嘛的计算就不用伤神去想起个什么变量名字了。但是这种特性不能广泛的应用,因为这个 cute 的 _ 用过了将会带来很大的代码维护量——本来是因为不想写太多的字而采用的替代符,可能过 1 个小时我就不记得了,需要写更多的注释来标记。但是不管怎么说,这种替代符在 Java 中是没有的,看习惯 Java 的我们可能会开始有些不适应看别人写的 “_”.
Scala 中的尾递归。从项目本身的要求来说,是很讲究效率的。递归,写起来容易,简洁,明了,但是会带来很大的额外开销。在 C++ 和 Java 中,同样的问题,循环的效率一般会高一些。但是 Scala 的编译器对尾递归做了优化(我们期待 Scala 为递归做更多的优化吧~),对于尾递归,它的效率几乎和 循环 相同。但是,尾递归的限制比较多(也就是说,只有在最后调用自己的函数才是尾递归),这样,能达到相同效率的应用就有限了,而且运用的时候还要考虑是否是“尾递归”的问题。:(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值