无形代码错误:inst.type 的表达式不符合
Error in shapeless code: Expression of inst.type does not conform
我正在看无形的书,并按照例子去做。
第四章有一个例子,如何读取HList
的第二个元素。
代码
import shapeless.{HList, ::, HNil}
trait Second[L <: HList] {
type Out
def apply(value: L): Out
}
object Second {
type Aux[L <: HList, O] = Second[L] {type Out = O}
def apply[L <: HList](implicit inst: Second[L]): Aux[L, inst.Out] =
inst
}
object Main {
def main(args: Array[String]): Unit = {
}
}
编译器抱怨:
我把书上的代码复制粘贴到一本都配置不出来,哪里出错了。
请帮我找一下。
这不是编译器问题,而是您的 IDE 抱怨(是 IntelliJ 吗?)。
如果你编译 (Ctrl+Shift+F9 / ⌘+Shift+F9) 或 运行 (Ctrl+Shift+F10 / ⌘+Shift+F10) 你的代码你会看到它编译得很好.
您应该习惯一些有效的 Scala 代码被 IDE 错误下划线标记为红色。
这是说服你的方法 IDE:
def apply[L <: HList, O](implicit inst: Second.Aux[L, O]): Aux[L, O] = inst
我正在看无形的书,并按照例子去做。
第四章有一个例子,如何读取HList
的第二个元素。
代码
import shapeless.{HList, ::, HNil}
trait Second[L <: HList] {
type Out
def apply(value: L): Out
}
object Second {
type Aux[L <: HList, O] = Second[L] {type Out = O}
def apply[L <: HList](implicit inst: Second[L]): Aux[L, inst.Out] =
inst
}
object Main {
def main(args: Array[String]): Unit = {
}
}
编译器抱怨:
我把书上的代码复制粘贴到一本都配置不出来,哪里出错了。
请帮我找一下。
这不是编译器问题,而是您的 IDE 抱怨(是 IntelliJ 吗?)。
如果你编译 (Ctrl+Shift+F9 / ⌘+Shift+F9) 或 运行 (Ctrl+Shift+F10 / ⌘+Shift+F10) 你的代码你会看到它编译得很好.
您应该习惯一些有效的 Scala 代码被 IDE 错误下划线标记为红色。
这是说服你的方法 IDE:
def apply[L <: HList, O](implicit inst: Second.Aux[L, O]): Aux[L, O] = inst