加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala,currying和overloading

发布时间:2020-12-16 09:21:18 所属栏目:安全 来源:网络整理
导读:说你有以下几点: foo(x: String)(y: Int): Intfoo(x: String)(y: Double): Int Scala不允许这样的表达.据我所知,这样做的原因是,foo(“asdf”)没有很好的定义类型(Int = Int或Double = Int). 是否有理由不允许这种“多型”功能? 解决方法 Scala中的重载解
说你有以下几点:

foo(x: String)(y: Int): Int
foo(x: String)(y: Double): Int

Scala不允许这样的表达.据我所知,这样做的原因是,foo(“asdf”)没有很好的定义类型(Int => Int或Double => Int).

是否有理由不允许这种“多型”功能?

解决方法

Scala中的重载解析只考虑了第一个参数列表.这就是为什么替代品在这个列表中已经有所区别了.有一个很好的理由:我们可以使用解析函数的类型来推断后续参数的类型.这使得成语像:

xs.corresponds(ys) { (x,y) => x < y }

请注意,在这里我们需要知道对应的类型以推断x和y的类型.当对等体重载时,将这种情况分解,这将是一种耻辱.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读