1

永続化する方法はありますか (つまり、変数に保持することを意味します) (可能ですか?) 動的に成長しHListますか? 私の疑似コード:

var llist = 1 :: 2 :: "foo" :: true :: HNil
var list: HList = HNil // here is a wrong type! in fact we dont need HList type

object mapFunc extends Poly1 {
    implicit def default[T] = at[T](t => { list = t :: list })
}

llist map mapFunc

明らかに、このコードは機能しません。それはうまくいきますが、タイプミスlist.headの理由でさえできませんHList(私が認識しているようにlist、タイプパラメータをまったく保持していません)。

結果のタイプ:

shapeless.HList = true :: foo :: 2 :: 1 :: HNil

だから、それは間違っています。

編集

上記の情報だけでは不十分です。

HListだから私は、任意の型にすることができる変数のようなものをいくつかのオブジェクトに入れたいと思っていました。

class className {
    var hlist: HList = _ // it is not correct
}

HListこの変数を時々渡すため。

className.hlist = llist

ps @milessabin mbは、私の問題に対する別の解決策を見つける方が良いということです。

4

1 に答える 1