scala - 为什么类体会影响隐式解析?

标签 scala shapeless

我在尝试抽象类时偶然发现了这个问题。以下代码:

import shapeless._
class A 
  [tuple <: Product, hlist <: HList]
  (tuple: tuple)
  (implicit tupleGeneric: Generic.Aux[tuple, hlist]) 
{
  private val hlist = tupleGeneric.to(tuple)
  println(hlist)
}
new A((1, 'b')) {}

编译失败并显示以下消息:
could not find implicit value for parameter tupleGeneric: shapeless.Generic.Aux[(Int, Char),shapeless.::[Int,shapeless.::[Char,shapeless.HNil]]]
new A((1, 'b')) {}
    ^

但是,如果我只是删除 {}部分来自 new A((1, 'b')) {} ,它发现隐式没有问题。

这是 Scala 错误还是我遗漏了什么?

最佳答案

原来这是一个公认的错误。

https://issues.scala-lang.org/browse/SI-8104

关于scala - 为什么类体会影响隐式解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20805545/

相关文章:

针对变量的 Scala 匹配函数

scala - 使用 Generic 从嵌套案例类中收集数据

scala - 使用 Shapeless 实现 (HList of Function, Input) => Tuple 类型类

scala - 自动将案例类转换为无形的可扩展记录?

scala - 生成类型类实例时无法证明单例类型是单例类型

scala - 如何使用带有 `self` 引用的 Scala 特征?

scala 将 Int => Seq[Int] 转换为 Seq[Int => Int]

scala - 结合2个偏函数

java - 使用 log4j 生成日志文件的问题

scala - 为什么 Shapeless 中的 _0 Nat 是一个类而不是一个对象?