Vielleicht kann mir jemand mit formlos helfen? Ich bin neu damit.Wie kombinieren 2 formlose Funktionen (replaceAt und at) einfachste Weg?
Meine konkrete Aufgabe - Funktion erstellen, die Tupelelement in Option Zum Beispiel gegeben konvertieren:
val inp: (String, Int) = ("zzz", 5)
myfunc(inp, 1)
Wenn Rückkehr: ("zzz", Option(5))
fand ich, dass ich diese Aufgaben mit replaceAt
und at
tun kann Funktionen, aber ich kann nicht herausfinden, wie man das in einer generischen Funktion macht. Mein bestes Ergebnis ist folgendes:
def opt[P <: Product, U, V, R](p: P, n: Nat, u:()=>U)(implicit at: At[P, n.N], replacer: ReplaceAt.Aux[P, n.N, Option[U], (V, R)]):R = {
val value1: TupleOps[P] = shapeless.syntax.std.tuple.productTupleOps(p)
val out1 = value1.at(n)
value1.updatedAt(n, Option(u()))
}
So kann ich es wie opt(t, 1,()=> t.at(1))
nennen, aber ich würde sehr gerne nicht 3. param verwenden
im Allgemeinen Also, meine Frage ist:
Ich kann nicht kombinieren at()
Ausgang und replaceAt()
Eingang.
IDE bietet mir At[P, n.N]#Out
als at()
Ausgang verwenden, aber nicht dieses Spiel mit U
Eingang replaceAt
Thank you! Dies ist anscheinend das, wofür ich gebraucht wurde. Ich hatte Probleme mit 'ModifierAt', aber ich benutzte' updateAtWith() ', das es benutzte. Und jetzt funktioniert alles wie es soll :) – MercurieVV