我对Scala
世界全新,并试图了解一些Scala
概念。从here开始,我得到Scala Code
下面的内容。
def twice(op: Double => Double, x: Double) = op(op(x))
并致电twice(_ + 1, 5)
,返回结果Double = 7.0
。但我无法理解_ + 1
和op: Double => Double
的真正含义。有人能够解释我上面的代码吗?
答案 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
)