【发布时间】:2012-05-14 09:05:25
【问题描述】:
F# 编译器有时会拒绝我的代码,并出现 Duplicate definition of value foo 形式的编译时错误,指向如下定义:
let foo = ref 0
即使这不是重复的定义,因为在整个文件中没有 foo 的其他定义。为什么会这样?
【问题讨论】:
标签: f#
F# 编译器有时会拒绝我的代码,并出现 Duplicate definition of value foo 形式的编译时错误,指向如下定义:
let foo = ref 0
即使这不是重复的定义,因为在整个文件中没有 foo 的其他定义。为什么会这样?
【问题讨论】:
标签: f#
当您还定义 get_foo 函数时会发生这种情况:
let get_foo() = !foo
因为foo 的定义创建了一个实现其自己的get_foo 方法的属性,因此存在冲突。 F# 编译器对此感到困惑,并生成虚假的“重复定义错误”。
此错误已报告给 Microsoft,他们正在努力修复,但不会在 F# 的下一个 (VS11) 版本中使用。
【讨论】: