gpt4 book ai didi

types - F# 强制转换/将自定义类型转换为原始类型

转载 作者:行者123 更新时间:2023-12-01 10:40:31 26 4
gpt4 key购买 nike

我已经使用自定义 F# 类型设计了我的应用程序域,但是现在当我想将数据实际用于各种任务时,这些自定义类型似乎将成为 PITA...即将值写入 CSV 文件,使用其他库依赖原语等。

例如,我有一个这样的自定义类型(用作其他较大类型的构建块):

type CT32 = CT32 of float

但是这样的代码不起作用:
let x = CT32(1.2)
let y = float x //error: The type "CT32" does not support a conversion...
let z = x.ToString() //writes out the namespace, not the value (1.2)

我尝试使用 box/unbox 和 Convert.ToString() 以及两个 F# 转换运算符,但它们似乎都不允许我访问我的类型包含的基本原始值。有没有一种简单的方法来获取自定义类型中的原始值,因为到目前为止,它们比实际有用更令人头疼。

最佳答案

添加对 float 的支持很简单:

type CT32 = CT32 of float with
static member op_Explicit x =
match x with CT32 f -> f

let x = CT32(1.2)
let y = float x

关于types - F# 强制转换/将自定义类型转换为原始类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30602535/

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