gpt4 book ai didi

F# - 公共(public)文字

转载 作者:行者123 更新时间:2023-12-04 04:01:25 26 4
gpt4 key购买 nike

有没有办法在类型上定义公共(public)文字(C# 中的公共(public) const)?显然 let 类型中的绑定(bind)必须是私有(private)的,并且 Literal 属性不能应用于成员。

最佳答案

使用 [< Literal >] 属性。这就是你正在寻找的魔法。此外,将文字属性放在诸如字符串之类的值上可以在模式匹配中使用它。例如:

// BAD - introduces new value named 'Name'
let Name = "Chris Smith"

match Console.ReadLine() with
| Name -> printfn "You entered my name! %s" Name
| _ -> printfn "You didn't enter my name"

// Good - uses the literal value, matches against the value Name
[<Literal>]
let NameLiteral = "Chris Smith"
match Console.ReadLine() with
| NameLiteral -> "You entered my name!"
| _ -> printfn "You didn't enter my name.

编辑:我看到问题是指如何将这些放在自定义类(而不是模块)中。我不知道你是否可以在 F# 中公开一个 public const/public readonly 字段,我会调查一下。

关于F# - 公共(public)文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1834923/

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