5
の内側に次のコードは、マッピングが機能
case class Pair(a: String, b: Int)
val pairGen = Generic[Pair]
object size extends Poly1 {
implicit def caseInt = at[Int](x => 1)
implicit def caseString = at[String](_.length)
}
def funrun(p: Pair) = {
val hp: HList = pairGen.to(p)
hp.map(size)
}
をコンパイルして実行するのに十分な明白なようだが、コンパイラは、「パラメータマッピングのための暗黙の値を見つけることができませんでした」と言います。私の使用例では、HListをマップしてHListの文字列を取得し、HListの文字列をScala List [String]に変換したいと考えています。何か案は?
はありがとう:我々として使用することができます
:我々は
ToTraversable
を必要とするので、私たちは第三暗黙のパラメータを追加List[String]
に私たちのHList
M
(String
へのマッピングの結果)を有効にするには@ピーター!これはまさに私が探していたものです! – arapmv私はこのスレッドを閉じた後、なぜ複合型の次の基本的な拡張がうまくいかないのか理解しようとしているサークルに行ってきました: 'class A [T](val x:T); オブジェクトgはPoly1を拡張します。{ 暗黙のdef caseString = at [文字列] {identity} }; DEF括り[L <:HList( :[文字列] )(暗黙 GEN:Generic.Aux [A [文字列]、L]、 マッパー:マッパー[g.type、L] ) = gen.to(a).map(g) ' – arapmv
どのエラーが表示されますか? –