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

通用scala函数,其输入是变量arity的函数

发布时间:2020-12-16 19:10:01 所属栏目:安全 来源:网络整理
导读:我想定义一个带有另一个函数g的函数f.我们要求g取n个双打(对于一些固定的n)并返回一个Double.函数调用f(g)应返回n的特定值. 例如,f(Math.max)= 2,因为Math.sin具有类型(Double,Double)= Double,和f(Math.sin)= 1,因为Math.sin的类型为Double =双. 如何使用Sc
我想定义一个带有另一个函数g的函数f.我们要求g取n个双打(对于一些固定的n)并返回一个Double.函数调用f(g)应返回n的特定值.

例如,f(Math.max)= 2,因为Math.sin具有类型(Double,Double)=> Double,和f(Math.sin)= 1,因为Math.sin的类型为Double =>双.

如何使用Scala泛型定义f?

我尝试了几种形式但没有成功.例如:

def f[A <: Product](g: Product => Double) = {...}

这不起作用,因为我们无法在编译时提取n的值,并且不能约束A只包含Double值.

解决方法

有一个名为 Magnet Pattern的模式,由 Spray团队创建.它确实是你想要的

(编辑:李大同)

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

    推荐文章
      热点阅读