我正在编写一些scala代码来模拟python装饰器.我正在考虑通过让装饰器扩展一个Function特征来实现它.问题是我希望这个装饰器扩展一个接受任意数量参数的函数,而我能找到的唯一函数特征只允许特定数量的参数,例如: Function1,Function2等
这样的特质存在吗?或者,有没有更好的方法来实现这样的装饰?
编辑:我在scala: memoize a function no matter how many arguments the function takes?更清楚地重述这个问题.
解决方法:
scala> val bar: (Int*) => Int = {args => args.sum}
bar: (Int*) => Int = <function1>
scala> bar(1,2,3)
res4: Int = 6
不幸的是,你不能在这里使用类型推断:
scala> val bar = {args: Int* => args.sum}
<console>:1: error: ';' expected but identifier found.
val bar = {args: Int* => args.sum}
原文地址:https://codeday.me/bug/20190704/1381307.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。