gpt4 book ai didi

F# 模式匹配直接针对 let 绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 07:19:11 24 4
gpt4 key购买 nike

在 F# 中是否可以直接针对 let 绑定(bind)进行模式匹配?

例如,编译时没有任何警告:

    let value = 
match arg with
| 1 -> "value1"
| 2 -> "value2"
| _ -> failwith "key not found"

而以下给出警告 “这条规则永远不会被匹配”针对匹配 key2 的行和 _ :
    let key1 = 1
let key2 = 2
let value =
match arg with
| key1 -> "value1"
| key2 -> "value2"
| _ -> failwith "key not found"

这是因为尽管它们是不可变的,但 let 绑定(bind)不同于 C# const变量?

最佳答案

只需使用大写字母和[<Literal>]他们,它按预期工作。

let [<Literal>] X = 0
let [<Literal>] Y = 1
let bla arg =
match arg with
| X -> "zero"
| Y -> "one"
| somethingelse -> somethingelse.ToString()

按照惯例,小写名称通常表示绑定(bind)到名称的通配符。

关于F# 模式匹配直接针对 let 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22424812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com