【发布时间】:2014-10-06 09:44:30
【问题描述】:
我定义了一个方法和一个函数:
def print(str:String) = println
val intToString = (n:Int) => n.toString
现在我想创作它们。
我的问题是,为什么两者都没有:
print(_) compose intToString
print(_:String) compose intToString
编译?
但是:
(print(_)) compose intToString
(print _ ) compose intToString
编译?
【问题讨论】:
-
别忘了你可以随时写
intToString andThen print -
@Huw
compose与andThen不同。f _ compose g等价于f(g(x))而f _ andThen g等价于g(f(x)) -
嗯,是的,这就是我的意思;通过颠倒顺序,方法出现在可以自动转换为函数的位置。
标签: function scala methods composition