f# - f# 中的赋值运算符

标签 f# shadowing

我在 ruby​​ 以及 powershell 编程中看到我们可以分配像 a,b=b,a 这样的变量。它实际上交换了变量。

这在 f# 中是否可能,如果可以,请指导我一些引用

最佳答案

一般来说,F# 不允许变量重新赋值。相反,它支持通过 let 绑定(bind)获得不可变的命名值。因此,以下情况是不可能的:

let a = 3
a = 4

除非您明确将a标记为可变:

let mutable a = 3
a <- 4

但是,F# 在大多数情况下允许变量“隐藏”。对此的唯一限制是它不能在顶级模块上完成。但是,例如,在函数内,以下内容可以正常工作:

let f () =
    let a,b = 1,2
    let a,b = b,a //"swap"
    a,b

关于f# - f# 中的赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5534368/

相关文章:

scala - 强制访问def

iphone - 需要帮助在 iOS4 中的 uiview 中向图像添加阴影吗?

python - 从(或附近)具有相同名称的脚本导入库会引发 "AttributeError: module has no attribute"或 ImportError 或 NameError

f# - 将 F# 模块拆分为同一文件中的多个部分

f# - 如果列表为空,如何修复 List.head 中的异常 hell

F# 在类上实现列表 [] 运算符?

Java 内部类隐藏外部类

linux - 通过加载项管理器对 monodevelop 的 Fsharp 绑定(bind)无法解析依赖项

F# 查找列表中值的出现次数

C# vs VB.Net,Shadowing 和 [Overloading (without changing the arguments)] 有什么区别