【发布时间】:2012-10-11 16:59:28
【问题描述】:
考虑一下:
scala> def sum(x:Int,y:Int) = x+y
sum: (x: Int, y: Int)Int
scala> sum(1,_:String)
<console>:9: error: type mismatch;
found : String
required: Int
sum(1,_:String)
显然 Scala 非常清楚 sum(1,_) 中 _ 的确切类型,但您必须 say sum(1,_:Int)。为什么 ?
显然 Scala 随机(?)选择了一个:
scala> def sum(x:Int,y:String) = 1
sum: (x: Int, y: String)Int
scala> def sum(x:Int,y:Double) = 1
sum: (x: Int, y: Double)Int
scala> class Ashkan
defined class Ashkan
scala> sum(1,_:Ashkan)
<console>:10: error: type mismatch;
found : Ashkan
required: Double
sum(1,_:Ashkan)
【问题讨论】:
-
我相信this will 会回答你的问题吗?
标签: scala type-inference currying partial-application