Hen*_*son 15 types scala currying
说你有以下内容:
foo(x: String)(y: Int): Int
foo(x: String)(y: Double): Int
Run Code Online (Sandbox Code Playgroud)
Scala不允许这样的表达.据我所知,其原因是foo("asdf")没有明确定义的类型(它是Int => Int或Double => Int).
是否有理由不允许这种"多型"功能?
Mar*_*sky 21
在Scala中重载分辨率仅考虑第一个参数列表.这就是为什么替代品必须在此列表中有所不同.这有一个很好的理由:我们可以使用已解析函数的类型来推断后续参数的类型.这使得成语如下:
xs.corresponds(ys) { (x, y) => x < y }
Run Code Online (Sandbox Code Playgroud)
注意,这里我们需要知道的类型,corresponds以此来推断的类型x和y.在corresponds超载时将其分解将是一种耻辱.
| 归档时间: |
|
| 查看次数: |
1270 次 |
| 最近记录: |