我想做类似的事情(Nemerle语法)

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

在F#上,F#是真实的吗?

有帮助吗?

解决方案

如果我正确理解您,您想为变量分配一些值作为模式的一部分。 F#中没有对此的直接支持,但是您可以定义执行此操作的参数化活动模式:

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

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

之后的字符串 Let 是模式的参数(并以 v)。然后,该模式返回包含界值和原始值的元组(因此,您可以在元组的第二个参数中匹配原始值。

其他提示

对此没有直接的支持,但您也可以模仿这样的效果:

let 1, st, _ | 2, _, st = stt, "Summ", "AVG"
sprintf "%s %a" st summbycol (counter, stt)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top