对我来说,现有价值观的阴影如下所述:
阴影和嵌套函数
F# 中不可变
f# 重复定义
FSharp 好玩又赚钱的评论
似乎违背了使 F# 如此强大的不变性和类型安全的概念。 F# 中的阴影工作不同的比在 C# 中。我花了相当长的时间才发现我的代码中的错误是由于无意中隐藏了同一范围内的名称造成的。有没有办法让编译器对 VS 中的隐藏值发出警告?
我知道在某些情况下它是有用的。例如对于检查算术 .
我使用阴影的一个地方是,如果未提供任何值,则将可选参数解析为默认值。
member x.Foo(?myFlag: bool) =
let myFlag = defaultArg myFlag false
...
另外,如果我们没有阴影,F# Interactive 现在的实现方式将几乎完全不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)