kullanarak yöntem için gerekli olandan daha fazla kanıt gerekli Dün birkaç meslektaşla Shapeless'ı araştırıyordum ve bu parametre Int
:Shapeless
E :: T =:= Int :: T
sonucuna varılabilir, ancak derleyici bunun gerçekleştirilebilmesi mümkün değildi -
def addOneToCaseClass[C, H <: HList, E, T <: HList]
(c: C)
(implicit gen: Generic.Aux[C, H],
h: IsHCons.Aux[H, E, T],
ev: E =:= Int,
ev2: (Int :: T) =:= H
): C = {
val hList = gen.to(c)
val elem = hList.head
val tail = hList.tail
val newElem = elem + 1
gen.from(newElem :: tail)
}
o ev2
parametre gereksiz geliyor bana.
Neden belli bir nedeni var mı?
Bu hiçbir şekilde sorunuza cevap vermez, ancak E'den tamamen kurtulursa işe yarıyor mu? [C, H, T], 'IsHCons.Aux [H, Int, T], vb? E hala mevcutken, h', 'ev' ve' ev2''nün herhangi biri işe yaramalı? – ellisbben