Question

Je veux faire quelque chose comme ça (syntaxe Nemerle)

def something =
match(STT)
    | 1 with st= "Summ"
    | 2 with st= "AVG" =>
        $"$st : $(summbycol(counter,STT))"

sur F # donc est-il réel avec F #?

Était-ce utile?

La solution

Si je vous comprends bien, vous souhaitez attribuer une valeur à une variable dans le cadre du modèle. Il n'y a pas un soutien direct à cet effet dans F #, mais vous pouvez définir un motif actif paramétrés qui fait que:

let (|Let|) v e = (v, e)

match stt with 
| Let "Summ" (st, 1) 
| Let "AVG" (st, 2) -> srintf "%s ..." st

La chaîne après Let est un paramètre du modèle (et est transmise comme valeur de v). Le motif renvoie alors un tuple contenant la valeur limite et la valeur d'origine (afin de pouvoir correspondre à la valeur d'origine dans le deuxième paramètre du tuple.

Autres conseils

Il n'y a pas un soutien direct pour cela, mais vous pouvez imiter l'effet comme celui-ci ainsi:

let 1, st, _ | 2, _, st = stt, "Summ", "AVG"
sprintf "%s %a" st summbycol (counter, stt)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top