相关疑难解决方法(0)

如何在F#中创建一个值类型的联合类型?

普通F#区分联合是引用类型.如何在F#中创建一个简单的(非递归的,只有值类型的字段)联合类型,它是一个值类型?

根据一些互联网搜索,我当前(非工作)的尝试看起来如下:

[<StructLayout(LayoutKind.Explicit)>]
type Float =
    [<DefaultValue>] [<FieldOffset 0>] val mutable Val1 : float
    [<DefaultValue>] [<FieldOffset 0>] val mutable Int1 : int
    new (a:float) = {Val1 = a}    
Run Code Online (Sandbox Code Playgroud)

以下博客文章显示通过C#显示可能的内容

我知道上面的内容并不是惯用的F#,但我试图优化我的应用程序的一部分性能,并且分析清楚地表明堆分配(JIT_new)的成本是导致我的性能瓶颈的原因.简单的联合类型是满足我需求的完美数据结构,而不是堆分配的.

.net c# f# pointers discriminated-union

3
推荐指数
1
解决办法
1086
查看次数

标签 统计

.net ×1

c# ×1

discriminated-union ×1

f# ×1

pointers ×1