Scala - 控制结构

时间:2016-07-07 20:11:56

标签: scala

我对Scala世界全新,并试图了解一些Scala概念。从here开始,我得到Scala Code下面的内容。

def twice(op: Double => Double, x: Double) = op(op(x))

并致电twice(_ + 1, 5),返回结果Double = 7.0。但我无法理解_ + 1op: Double => Double的真正含义。有人能够解释我上面的代码吗?

1 个答案:

答案 0 :(得分:3)

op: Double => Double

op是一个函数,它接受Double类型的值并返回类型为Double的新值。

_ + 1

_是此匿名函数参数的占位符(即此函数已描述但没有名称。一旦在twice方法中收到它,其名称为op 。)所以这个函数接受一个参数,给它加1,然后返回新的值。

如果您致电twice(_ + 1, 5),可以这样考虑:op(op(x)) - > op(op(5)) - > op(5 + 1) - > op(6) - > 6 + 1 - > 7(或7.0,因为它的类型为Double