为什么eta-expansion不适用于隐式添加的成员 [英] Why eta-expansion doesn't work with implicitly added members
本文介绍了为什么eta-expansion不适用于隐式添加的成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这不起作用:
% - 10s%-50s%s.format _
< console>:13:错误:特性字符串类型中缺少方法格式的参数;
如果您想将其视为部分应用函数,则使用`_'后跟此方法
%-10s%-50s%s.format _
但是这样做:
import scala.collection .immutable._
scala> (%-10s%-50s%s:StringLike [_])。format _
res91:Seq [Any] => String =< function1>
那么,为什么我必须明确指定类型类?
/ browse / SI-8299rel =nofollow> https://issues.scala-lang.org/browse/SI-8299
这就是不是一个完整的原因。
不确定这是否需要说明,但:
阶> val f:Seq [Any] => String =%-10s%-50s%s.format
f:Seq [Any] => String =< function1>
This doesn't work:
"%-10s %-50s %s".format _ <console>:13: error: missing arguments for method format in trait StringLike; follow this method with `_' if you want to treat it as a partially applied function "%-10s %-50s %s".format _
But this works:
import scala.collection.immutable._ scala> ("%-10s %-50s %s": StringLike[_]).format _ res91: Seq[Any] => String = <function1>
So, why i have to specify type class explicitly?
解决方案This is why:
https://issues.scala-lang.org/browse/SI-8299
That's not a whole lotta why.
Not sure if this needs saying, but:
scala> val f: Seq[Any] => String = "%-10s %-50s %s".format f: Seq[Any] => String = <function1>
这篇关于为什么eta-expansion不适用于隐式添加的成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文