我尝试过使用HList,以下内容按预期工作:
val hl = 1 :: "foo" :: HNil
val i: Int = hl(_0)
val s: String = hl(_1)
然而,我无法让下面的代码正常工作(暂且假设对列表进行随机访问是一个聪明的想法;-)):
class Container(hl: HList) {
def get(n: Nat) = hl(n)
}
val container = new Container(1 :: "foo" :: HNil)
val i: Int = container.get(_0)
val s: String = container.get(_1)
我希望
get
能够根据它的参数返回一个整数和一个字符串。我认为,如果可能的话,我需要使用 Aux
或 at
,但我不确定如何实现这一点。