【发布时间】:2013-04-04 18:51:23
【问题描述】:
阅读 Array2D 模块的源代码,我在许多核心功能的实现中偶然发现了这个有趣的结构,例如:
[<CompiledName("Get")>]
let get (array: 'T[,]) (n:int) (m:int) = (# "ldelem.multi 2 !0" type ('T) array n m : 'T #)
我只能假设这是内联 CIL 的语法,并且在这里使用显然是为了获得性能优势。但是,当我尝试在我的程序中使用这种语法时,我得到一个错误:
warning FS0042: This construct is deprecated: it is only for use in the F# library
这究竟是什么?有详细的文档吗?
【问题讨论】:
-
在我看来像一张困惑的脸
-
我理解好奇心,但我会警告它仅用于 F# 库中,这表明我们任何人都不需要使用它:-)
-
您可能希望发布您找到的答案作为答案,而不是将其编辑到问题中。
-
酷,我已经编辑了问题并将该部分移到了答案中。
-
@OnorioCatenacci 我想忽略它,但简单的现实是 F# IntelliSense 说我的一些 let 表达式有这种类型。我写的时候似乎发生了:
let (a, b, c) = ...