我正在读这本书的形状,并按照例子
在第4章,有一个例子,如何阅读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 = {
}
}
编译器抱怨:
我将第一本书中的代码复制并粘贴到一起,无法将其配置出来,错误在哪里。
请帮我找到它。
答案 0 :(得分:1)
这不是编译器,而是你的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