gpt4 book ai didi

f# - 如何识别重新定义的变量或阴影变量

转载 作者:行者123 更新时间:2023-12-03 10:06:10 25 4
gpt4 key购买 nike

使用 F# 编译器在同一范围内两次使用同一变量时,没有警告或反馈。例如

let s = "abc"
let s = "def"
printfn "%A" s

结果是
def

我见过
Is there a way to have warnings for shadowing values in F# in Visual Studio?
F# value shadowing - is it possible to disable value shadowing within the same scope

有没有办法通过编译器警告或在编辑器中直观地获得有关阴影变量的反馈。如何才能做到这一点?

最佳答案

首先,在同一范围内隐藏变量不是错误或应该禁用的东西。如 Joel Mueller声明它是 legitimate, useful, and common .

MSDN

At any level of scope other than module scope, it is not an error to reuse a value or function name. If you reuse a name, the name declared later shadows the name declared earlier.



Syntax Coloring Visual Studio 扩展的功能 F# Power Tools将突出显示当前有效变量并将阴影变量显示为浅灰色。例如

enter image description here

可以从 Visual Studio 菜单安装扩展

工具 -> 扩展和更新
对话框打开后
选择 Visual Studio 库
在右上角的搜索框中输入 F# Power Tools
由于我已经安装了它,所以没有显示安装选项。

enter image description here

该功能可以从 Visual Studio 菜单中激活

工具 -> 选项 -> F# Power Tools -> 常规 -> 语法着色 -> 灰色未使用的声明

enter image description here

关闭选项:

enter image description here

有选项:

enter image description here

注意:更改选项后,必须关闭源文件,然后重新打开才能使更改生效。不需要为此重新启动 Visual Studio,但这样做会产生相同的效果。

感谢 Ringil注意到我之前的无效声明。

源代码注意事项:

Graying out unused declarations


Currently unused non public types, methods, functions and values declarations are checked. Beware that this feature is only 100% reliable when the code has no type error. This setting is available in General options. It is disabled by default because there might be performance issues on large files.



F# Power Tools features list

关于f# - 如何识别重新定义的变量或阴影变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35670812/

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