![]() |
1
12
问题不在于这个
我认为下面的隐式自由示例(也不使用诸如
这将使用
实际上它将使用
无法编译:
现在我们可以让它看起来更像您的原始代码:
失败的原因与您看到的错误相同:导入的隐式转换被封闭类中同名的定义隐藏。 脚注1你问了以下问题:
隐含物名称 总是 . 这就是语言的工作方式。例如:
我们所做的是定义一个隐式值来隐藏
脚注2我认为这里可能存在编译器错误,至少就错误消息而言。如果你在我上面的第二个版本中稍微改变一下,例如:
你会得到一个更合理的信息:
在我看来,这几乎肯定是编译器
应该
告诉你你原来的案子。我也不知道为什么隐式转换会被考虑,但是它是,正如您可以知道的,如果您在repl中运行代码
所以看起来含蓄在另一个上面消失了
|
![]() |
2
2
不知道这算不算答案 (也许对编译器内部有更多了解的人可以给出更详细的解释) ,但在对您的代码进行了一段时间的分析后,我发现了一些问题,我认为这是错误的根源。 鉴于:
然后:
生产:
我认为这意味着,隐式转换是隐藏的,因为它的名称与universal冲突
够古董了,这行。
|
![]() |
Wickoo · Scala变量解析:类与局部变量 5 月前 |
![]() |
Jake · 如何回滚臭鼬事务以进行集成测试?(缺少隐式原点) 7 月前 |
![]() |
Readren · 如何定义标量。标量3中元组的ValueOf? 1 年前 |
![]() |
Leif Andersen · “=>”在scala泛型中是什么意思? 1 年前 |